{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d037743",
   "metadata": {
    "id": "5d037743"
   },
   "source": [
    "# Beat detection\n",
    "In this tutorial we will learn how to detect beats in ECG, PPG and BP signals.\n",
    "\n",
    "Our **objectives** are to:\n",
    "- Use beat detection algorithms to detect beats in ECG, PPG and BP signals\n",
    "- Compare the performance of different algorithms\n",
    "- Be aware of pre-processing steps required for real-world data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da64c16b",
   "metadata": {
    "id": "da64c16b"
   },
   "source": [
    "<div class=\"alert alert-block alert-warning\"><p><b>Context:</b> A key step in analysing PPG and BP signals is the detection of beats in the signals. This allows individual pulse waves to be analysed, and either: (i) features to be extracted from PPG pulse waves; or (ii) reference BP values to be extracted from BP pulse waves.</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1afcdef9",
   "metadata": {
    "id": "1afcdef9"
   },
   "source": [
    "---\n",
    "## Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edd8e0c5",
   "metadata": {
    "id": "edd8e0c5"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ce3cdfde",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "ce3cdfde",
    "outputId": "693c9521-0083-4ff7-edcc-907e37698176"
   },
   "outputs": [],
   "source": [
    "# Packages\n",
    "import sys\n",
    "#from pathlib import Path\n",
    "!pip install wfdb==4.1.0\n",
    "import wfdb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ee8532b2",
   "metadata": {
    "id": "ee8532b2"
   },
   "outputs": [],
   "source": [
    "# The name of the MIMIC IV Waveform Database on PhysioNet\n",
    "database_name = 'mimic4wdb/0.1.0' \n",
    "\n",
    "# Segment for analysis\n",
    "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
    "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
    "\n",
    "# 3 and 8 are helpful examples\n",
    "rel_segment_no = 8 \n",
    "rel_segment_name = segment_names[rel_segment_no]\n",
    "rel_segment_dir = segment_dirs[rel_segment_no]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61a9432c",
   "metadata": {
    "id": "61a9432c"
   },
   "source": [
    "---\n",
    "## Extract one minute of signals from this segment"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d1d426b",
   "metadata": {
    "id": "3d1d426b"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "60464239",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "60464239",
    "outputId": "c03e45df-1855-4eab-e60d-dd3a18d7b76a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Metadata loaded from segment: 88995377_0001\n",
      "60 seconds of data extracted from: 88995377_0001\n",
      "Extracted the ABP signal from column 3 of the matrix of waveform data at 62.5 Hz.\n",
      "Extracted the PPG signal from column 4 of the matrix of waveform data at 62.5 Hz.\n",
      "Extracted the ECG signal from column 2 of the matrix of waveform data at 62.5 Hz.\n"
     ]
    }
   ],
   "source": [
    "# time since the start of the segment at which to begin extracting data\n",
    "start_seconds = 100 \n",
    "no_seconds_to_load = 60\n",
    "\n",
    "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
    "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n",
    "\n",
    "fs = round(segment_metadata.fs)\n",
    "sampfrom = fs*start_seconds\n",
    "sampto = fs*(start_seconds+no_seconds_to_load)\n",
    "\n",
    "segment_data = wfdb.rdrecord(record_name=rel_segment_name,\n",
    "                             sampfrom=sampfrom,\n",
    "                             sampto=sampto,\n",
    "                             pn_dir=rel_segment_dir)\n",
    "\n",
    "print(f\"{no_seconds_to_load} seconds of data extracted from: {rel_segment_name}\")\n",
    "abp_col = []\n",
    "ppg_col = []\n",
    "\n",
    "abp_col = segment_data.sig_name.index('ABP')\n",
    "ppg_col = segment_data.sig_name.index('Pleth')\n",
    "ecg_col = segment_data.sig_name.index('II')\n",
    "\n",
    "abp = segment_data.p_signal[:,abp_col]\n",
    "ppg = segment_data.p_signal[:,ppg_col]\n",
    "ecg = segment_data.p_signal[:,ecg_col]\n",
    "fs = segment_data.fs\n",
    "\n",
    "print(f\"Extracted the ABP signal from column {abp_col} of the matrix of waveform data at {fs:.1f} Hz.\")\n",
    "print(f\"Extracted the PPG signal from column {ppg_col} of the matrix of waveform data at {fs:.1f} Hz.\")\n",
    "print(f\"Extracted the ECG signal from column {ecg_col} of the matrix of waveform data at {fs:.1f} Hz.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1705ff48",
   "metadata": {
    "id": "1705ff48"
   },
   "source": [
    "---\n",
    "## Filter the signals"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47a63ea6",
   "metadata": {
    "id": "47a63ea6"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b6a38f7",
   "metadata": {},
   "source": [
    "- Import packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5f35624c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.signal as sp\n",
    "from matplotlib import pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec9da851",
   "metadata": {},
   "source": [
    "- Create filter for PPG and BP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "75fd6b99",
   "metadata": {
    "id": "75fd6b99"
   },
   "outputs": [],
   "source": [
    "# filter cut-offs for PPG and BP\n",
    "lpf_cutoff = 0.7 # Hz\n",
    "hpf_cutoff = 10 # Hz\n",
    "\n",
    "# create filter\n",
    "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
    "                       btype = 'bp',\n",
    "                       analog = False,\n",
    "                       output = 'sos',\n",
    "                       fs = fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "815d512f",
   "metadata": {},
   "source": [
    "- Filter PPG and BP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "79320156",
   "metadata": {},
   "outputs": [],
   "source": [
    "# filter PPG\n",
    "ppg_filt = sp.sosfiltfilt(sos_filter, ppg)\n",
    "\n",
    "# Filter BP\n",
    "abp_filt = sp.sosfiltfilt(sos_filter, abp)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "966174ab",
   "metadata": {},
   "source": [
    "- Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "48c30a70",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'PPG')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0,len(ppg))/fs\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(t, ppg, color = 'blue')\n",
    "ax.plot(t, ppg_filt, color = 'red')\n",
    "ax.set_xlabel('Time [s]')\n",
    "ax.set_ylabel('PPG')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "603d12db",
   "metadata": {},
   "source": [
    "- Create filter for ECG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "925827c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# filter cut-offs for PPG and BP\n",
    "lpf_cutoff = 0.5 # Hz\n",
    "hpf_cutoff = 30 # Hz\n",
    "\n",
    "# create filter\n",
    "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
    "                       btype = 'bp',\n",
    "                       analog = False,\n",
    "                       output = 'sos',\n",
    "                       fs = fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ef535ba",
   "metadata": {},
   "source": [
    "- Filter ECG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "aa7930d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "ecg_filt = sp.sosfiltfilt(sos_filter, ecg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fec40090",
   "metadata": {},
   "source": [
    "- Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7835567e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Amplitude [V]')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0,len(ecg))/fs\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(t, ecg, color = 'red')\n",
    "ax.plot(t, ecg_filt-1, color = 'orange')\n",
    "ax.set_xlabel('Time [s]')\n",
    "ax.set_ylabel('Amplitude [V]')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef73e57b",
   "metadata": {
    "id": "ef73e57b"
   },
   "source": [
    "---\n",
    "## Beat detection for pulsatile signals"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43a45001",
   "metadata": {
    "id": "43a45001"
   },
   "source": [
    "### Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f124a8f",
   "metadata": {
    "id": "8f124a8f"
   },
   "source": [
    "- Import the functions required to detect beats by running the cell containing the required functions [below](#functions)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b031a895",
   "metadata": {
    "id": "b031a895"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Question:</b> How have these functions been stored?</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5147241a",
   "metadata": {
    "id": "5147241a"
   },
   "source": [
    "### Detect beats in the PPG signal"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f1a4cdf",
   "metadata": {
    "id": "3f1a4cdf"
   },
   "source": [
    "- Detect beats in the PPG signal using three beat detector algorithms:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "GUSfOVb0m3hD",
   "metadata": {
    "id": "GUSfOVb0m3hD"
   },
   "outputs": [],
   "source": [
    "def pulse_detect(*args, **kwargs):\n",
    "    \"\"\"\n",
    "    Placeholder for a pulse detection function.\n",
    "    \"\"\"\n",
    "    msg = \"\"\"Override the pulse_detect function with the example \n",
    "          provided at the bottom of this notebook.\\n\"\"\"\n",
    "    print(msg)\n",
    "    return None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "8f245cd9",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "8f245cd9",
    "outputId": "e05d1404-a0b4-4084-97db-4a937ac1664f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 82 beats in the PPG signal using the D2max algorithm\n",
      "Detected 82 beats in the PPG signal using the Upslopes algorithm\n",
      "Detected 82 beats in the PPG signal using the Delineator algorithm\n",
      "Detected 82 beats in the PPG signal using the bishop algorithm\n"
     ]
    }
   ],
   "source": [
    "ppg_ibis_d2max = pulse_detect(ppg_filt, fs, 5, 'd2max')\n",
    "print(f\"Detected {len(ppg_ibis_d2max)} beats in the PPG signal using the {'D2max'} algorithm\")\n",
    "\n",
    "ppg_ibis_upslopes = pulse_detect(ppg_filt, fs, 5,'upslopes')\n",
    "print(f\"Detected {len(ppg_ibis_upslopes)} beats in the PPG signal using the {'Upslopes'} algorithm\")\n",
    "\n",
    "ppg_ibis_delineator = pulse_detect(ppg_filt, fs, 5, 'delineator')\n",
    "print(f\"Detected {len(ppg_ibis_delineator)} beats in the PPG signal using the {'Delineator'} algorithm\")\n",
    "\n",
    "#ppg_ibis_qppg = pulse_detect(ppg_filt, fs, 10, 'qppg')\n",
    "#print(f\"Detected {len(ppg_ibis_qppg)} beats in the PPG signal using the {'qppg'} algorithm\")\n",
    "\n",
    "ppg_ibis_bishop = pulse_detect(ppg_filt, fs, 5, 'bishop')\n",
    "print(f\"Detected {len(ppg_ibis_bishop)} beats in the PPG signal using the {'bishop'} algorithm\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0eb51879",
   "metadata": {
    "id": "0eb51879"
   },
   "source": [
    "- Plot the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "aa48073c",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 572
    },
    "id": "aa48073c",
    "outputId": "618dae0c-f219-45b2-910b-6d37ea8b05ab"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Bishop')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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dnLN+t1kk00ARPfqyCOPdDo1EydOxCGHHGKUT29ThzQmfB/0SLuhoaFsQdtOhrv0xGNnQ82H5CZOnFhRVkYJLDcT/fbbb19Rh+WWv9sAAP/973/xxBNPJNf//Oc/ceihh2KLLaKXXbIONttsMwBuR4XHyveZszImbLPNNgBK68CH6PfZZx8AceameRs4kj1eEb2c/y6iZ/3yGA888EAcdthh+NGPfmSVQRI9O5mtra3WOjILkDnTATuZ6mVlFi9LpM1wbWXZsoUmMpWyyfGYImN5z6ZOnQoAeP/732+UVYc8IMjrOcsefZZHeYcSIaLPiCxELzFp0qSKz7761a/iq1/9anLNk4BT7Iydd945+f/111+Pl156KTHQ06ZNAwD88Ic/tPbNxnDmzJkA3BE9G1kmFJdHK/e/ZURvgvT8TbJMnz4d06dPt7YBAHfccUfZ9SOPPIK7777baZyywrQoJdFPnjw5tR3WqUypSydDxx577IE//vGP2HbbbQFEWY7zzjsPBx+cPIGKmTNnYv78+Yn+Tz75ZCxbtgynnHJKIuudd96JPfbYI6nzpz/9CZdffnlinD73uc9h/vz5ZdmO9773vWWyvPe978VNN92UXH/wgx/Eeeedh5NOOqms3H777Zf8/5prrsGZZ56JCRMmAAA23XRTAOZ1wJg7dy4+9KEPJfNdPgetg+feEUccgd133x077bQTsOj8eE++E5uwfa5tBhA5Fy6i32677fDqq69W/CY7Oxmmswtz587FrbfempDbRhtthBtuuKGszG233VY25r333hu33XZbohd2lpiUTNhhhx1w9913Wx9v1MFj5HnJ9sEUSUpy43nJazJL6l5G2i7nTNYxkWljYyPa29sTmSTR+8i044474tlnn43mhgbWORA5sbfcckvF2wZN756Q4Dq8vnmemsbzuc99rmJuDBmUUqPu31577aUGGgAUALV06VJrmauuukpdc801znZqa2vVqaeeav1+6dKlaty4cerRRx9NPluxYoVav359Jnk/+tGPqne9611ln73xxhvJ/3t7exUA1dLSknx29dVXq0984hPJdWdnp7rwwgtVZ2dn8hnrgbH//vsrAOp///ufUkqpBx98UAFQM2bMsNbZYYcdFAA1f/58pZRSS5YsqSgzkiBl22OPPcrkV0qpT3/60+rGG2+0tnH//fer5uZmtWLFiuSz//3vfyqfz1v76evrUwsWLHDK1tHRoVauXJlpPIOF9evXl80ViWKxqK666irV3d2dfPb00087x/jCCy8oAGrSpEnJZ0TknisLr1UvXzpJrZkLpW6aotTCa9WBBx6oACTyPf300wqAmjp1apn8r776anL9jW98QwFQP/3pT5PPBmKerlmzRj388MNln82bN0+9+eab1n4WLVqkzjnnHNXb26uUUmrZsmUKgBo3bpy1TqFQUH/5y1+c65f1ct999ymllFq7dq360Y9+lPRTLBYr6sjro446SgFQc+bMUUop9frrr1vrFItFpZRSP/jBDxQA9e1vf9va7lNPPaUuvvji5PrSSy9VANTZZ59trbPFFlsoAOr5559XNqxZs0a1trZav7/pppsUgDJbPmfOHHXHHXck17feeqs67rjjkuvly5erY445RrW3tyefXXTRRer+++9PrltbW9WaNWus/fYXABYoCycOOykPxr/BIPqDDz5YAVA9PT0D3vZw4etf/7r685//nKnOHXfcof773/8m10uXLlW/+c1vkms2QH/605+Sz+Ri3HXXXRUA9dhjjymlIuMy0oled4iY6HVnbCCwaNGixGEKiLBo0SIFQG2xxRbJZ0uWLMms+7Vr16qnn346uV61apUCoE4++WRrnXPPPVcBUOecc07y2VDN07q6Omc/hUJBzZ49u0wPL7zwQup6lvK/+eab6hvf+Ibq6+tz1vnsZz+bXD/66KNq3rx5yfV9992nAKhXXnlFKaVUe3u7AqD22GMPa7//+te/FAB12223JZ8ddNBB6sQTT7TK0draqk477bSyoOdXv/qVuuuuu5LrT33qUwpAmUOdFcViUT3wwAOJU/J2QSD6AUBPT496+eWXB7zd0QhpNL73ve+p008/Pbn+61//qgAk3m2xWFQtLS3qggsuGFI5fbF06dKyqPmRRx5RBx100Khy+kYqenp61EEHHVQWGQ0UFi1alESuJtx8880KgLryyiuTz+rr69WBBx444LJIrF69Wr322msD3m41jkpra6vTETDhtttuK8sgnnjiiWqfffYpK7Ns2bJMbfqgs7MzyU5saHARPUXfjy7MmDFDLViwYLjFCAgIeJtjwYIF2GuvvZyPc76dcMopp6Cnpwdz5swZblECBhhE9JhSaobxu0D0AQEBAQEBb2+4iD48XhcQEBAQEDCK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iy8mB/V22WUXAMDJJ59slf9jH/sYgJITy/pyEf25556LrbbaCttttx2Ayres6eA5d/bZZ+Poo49OnBEXsqTuuX25j63jmGOOKWtvxowZWLJkCY488sikzP7774/jjjsuuZZPjmy22WYASsRiAs8buR3ok7p3Eb0kUZkRypK6l9kd03qQdVj/pkc6uT22RyyrKfNha3+fffbB0UcfjUsvvdRa5+CDoye6eW7LbJVrjcpMLOva5Bzor3keciilRt2/vfbaSw00ACgAatGiRdYy48aNU1tssYX1+2KxqACojTbayFrmrrvuUgDUeeedl3z229/+Vv3jH/9wynfjjTeq9evXV8jLaG9vV9/85jdVe3u7Ukqpjo6OijLxbwSoYrGolFLqxRdfVADUI488Ym135513VgDUk08+qZRS6oEHHlAAlH4PZJ3tt99eAVAPPfSQUkqpV155paJMNSgWi4nsAwkp22677VamF76v++23n7WN008/vWzMhUJBnXLKKerFF1+09rNo0SI1a9Ys1dHRkXzW1dWlCoVCcn3PPfeoOXPmlPXF99iG1tbWsn6VUmrVqlXOOj74wx/+oO64444yOR588MHkesWKFWry5Mnq0UcfTT77xje+oU477TRrm88884wCoCZNmpR85jNXvv/976ubbropuW5oaFAAknE+9thjCoCaOnVqUub2229X3//+95PrU089VQFQF198sbXv9evXO22CCXfddZc67LDDkrna19enGhsb1e9+9ztrPzfddFOZ/Vm4cKECoJqbmyvq8PxYuXKl2meffdTjjz9ubXfvvfdWANR9992nlFLq7rvvVgDUCy+8oJRSKp/PV9SR10ceeaQCoObOnauUiuatrQ6P+Xvf+54CoM455xxru1//+tfL6lx44YUKQNl8kXUmTZqkAKgnnnjCpHqllFLXXnutuuWWW5Lrzs5O9eabbybXF198sQKgzj333OSzHXbYQX3pS19Krvfff/+yfm+88UYFoGxuT5w4UR1xxBHJ9e23365++9vfWuXqLwAsUBZOHHZSHox/g0H0tbW1CkAZmUp0dnaqzs5OZzt33XWXevXVV51l7rzzTpXP56uSk/HUU0+pxx57zPo9k9PXvva15LM1a9Y4F4hSSu2zzz7q8MMPT66vvPJKBUC1trYqpZR6/PHHFQB17LHHJmXkYtxll10UgES+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PF73apY8QM9lk002afhsn332wT777JNd00TlmcY73lF7GvEXv/gFvvvd72YLaptttsEuu+yCM888U+177733ximnnIL/+q/khYW+iUgTm5yYj7mgxUjgHcMu0IL1HfLbeOONccABB6htAGgY7z/+8Q/cc889o7pHXHwn6N1tnJAQcJGTIiA+8sgj1Tp77bUXrrzySuy4444AkoDikksuwVve8paszHvf+15ce+212X049thjMTQ0hM985jMAEqfywAMPYKuttsrq/P3vf8e1116bOZwPfehDWLhwIb70pS9lZbbffvs6XXbYYQf86Ec/yq7f+ta34tJLL8WHPvSh7LN11103A10gCWJ/9KMfYf311wdQs9MOO+ygjvncc8/FgQcemDloH3VPY95///2xbNmyLOAioaDBFV9G/9a3vhV///vfs3Y5ayHNhYsvvhi33nprpmdXVxd+8IMf1JW55557MhsAwH777YfLL788A3j6u8suuzS0T7LLLrvgpptuamBHfIEKBWE77bQTANl38ad86B5RsJwH6Pn78KV7lgcYN9poI7zwwgvZfSUdfcEx12nLLbfEkiVLsvHQmLbbbrvs+s4778Qtt9zS8Jw+MRL8J3VdIV9J99fH/hxxxBG46qqrVN3HVay1q92/XXfd1Y61ALAA7EsvvaSW+eMf/2ivu+46bzu77767/cEPfqB+v2LFCrv33nvbp556Kvusv7/fDg8P59L3uOOOs//93/9d99nQ0FD2/+HhYQvAbrLJJnX6H3nkkXVlrrjiirq+yQ4k733vey0A+8wzz1hrrf3HP/5hAdi3vOUtap3tt9/eArD33nuvtdbaZ599tqHMVBKu2y677GIB2HvuuSf77Gtf+5q95ZZb1DYeeeQRu9dee9mVK1dmny1fvtyOjIyo/YyMjNjnn3/eq1u1Wq27r5Mpw8PDdeOR5KabbrKVSiW7XrhwYd1c5/LYY481zNONNtooOFeWLFli+/v7s+uPfOQjFoAdHBy01lr70EMPWQB2zpw5WZnBwUG7fPny7Przn/+8BWBPP/307LOxmKflcrlhzDfffLNdtmyZ2s+iRYvs+eefn9lu0aJFFoCdPXt2VmbatGkN8+fOO++sszdv96CDDrIA7B133GGttbavr89ecskltlqtZm3wOvz6sMMOswDsBRdcYK219rnnnrMArDFGrXPyySdbAParX/2qWuapp56yl19+eXZ98cUXWwD2lFNOUetsuOGGFoB97LHHrCZDQ0N1NuFy4403WgD26quvzj67+uqr7d13351d33777fa0007Lrnt6euzJJ5+czS9rrf3Vr35l//3vf2fXw8PDmV3HQwDMtwomTjooj8e/8QB6msxTxamOhZx22mn2pptuylVn/vz59uGHH86uly1bZq+55prseunSpXaTTTaxf/7zn7PP+GJMf3TI3nfffdbaZJFMdaDfdttts+s999yzTv+xkiVLlthFixaNaZuvdlmwYEEDIC9ZssQbHEjS399vX3jhhex6xYoVFoD99re/rdY56aSTLAB74oknZp9N1DydM2eO3WCDDdTvR0ZG7Le+9S376KOPZp89//zz9tZbb/W2y/VftmyZ/f73v+8N0ADY4447Lrt+4okn7I033phdP/jgg3bbbbe1L774orU2sTUA+7a3vU3t984777QA7O233559dvjhh9uzzz5b1aO/v9+eddZZdmBgIPvst7/9rZ0/f352/alPfcoCsEuXLlXbiZEFCxYEg9apJgXQj4GMjIzURfuFxMv5559vzzrrrOz65ptvtm94wxtsb29v9tnb3vY2e8UVV0yGekHp7e215XI5u3744YftMccc480KChkbqVQq9vDDD7cPPvjgmLfd29vrzbBuvvlmC8BeddVV2WdvfOMb7bHHHjvmunApl8t17M9YyUQFKvPnz69jKM4++2x72GGH1ZUZj/UzPDxsH3/88TFv99UgPqA3yferl+y22252/vz5k61GIYUU8iqXF198MeoMxqtFzj//fAwNDeGzn/3sZKtSyBiLMeY+a+1u0nfFYbxCCimkEEVWJ5AHgKOPPnqyVShkEqR4vK6QQgoppJBCVmMpgL6QQgoppJBCVmNZLffojTGLASwcwybXA7BkDNt7tUthj3op7FEvhT0apbBJvRT2qJexsMcW1tr1pS9WS6AfazHGzNcOOayJUtijXgp71Ethj0YpbFIvhT3qZbztUVD3hRRSSCGFFLIaSwH0hRRSSCGFFLIaSwH0cXLhZCswxaSwR72stvYwxlxgjPlGRLkFxpj/Si9XW3uMQgqb1Ethj3oZV3sUe/SFFLKGizFmAYANAVQBDAO4A8BR1trncrZxuLX2pvHQsZBCCmleioy+kEIKAYD3WGunA9gYwCIA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4UJsuOGGAGQHtO+++wKo7e1xQJaiv/XWW6+uDt8XlIQWIZWJObXOgw5Jl1BGLwl/sYZEQ1588cWYO3duBm5vf/vb8eCDD+Kwww6ra2ujjRpfvkj22HjjjXH99ddj2223zb7r6uqqcyr/+Z//icsvv7xu8e2///7eg108G5EONu68885405ve1FBHo+4l4SfOY1gYfq98QE92koD+xBNPxFlnnZVdf/7zn69rj5wg/ZWAje4zOUo+tyXhZzBiMldqnz8lIknMNhrfBol5SRPZctdddwUAHHTQQWpZDvS0nnt6etQ6PADyUfc846V5mQcYYw6v8SBfewrFFb52fFtk3LdQHenxZN4+D3b4wWJJuN0oQPI9bsrHHrOV5dNhvKQA+pySB+iNMdh8882za1rQrlx11VV46aWXMkdJC9jnDH/3u9/h+OOPz5wugd3uu++u1qGzBFTHB/S0OMgR+bYE+MEx32l+Ep4BSA70sMMOw9NPP10HIK973evqyjz33HN47LHHsusf//jH2HDDDb0ReF7xnaCnuUB0v5R1kmhvPNxggw3UOsRmUB3q58wzz2woS6D67ne/GwBwwAEHZP0effTRuPXWW7OyH/jABwDUHM473/nOujoA8J3vfAdf+MIXsuvTTjsNS5cuzZzevHnzsM466+Dkk09W9f/IRz5SNw4ebEry4x//GHvuuWcWnPn26MkuX/nKV3DSSSfhox/9qNouSTPUPX9E0hWyEbW3ww47YHBwEO973/uyMsccc0xd0EQBCf1df/31AfjXDAebmKcpYp4A0M45NJPR8/fhx1D30iOpJPQdrWcO9DGHXvfcc09885vfxLnnnqvW+cQnPlGnAwdt35kV/lIiuodScED+38f2jJtYa1e7f7vuuqsdawFgAdiFCxeqZXbeeWe7xx57qN+PjIxYAHbLLbdUy9xxxx0WgP3JT36SfXb11Vfb22+/3avfHXfcYQcGBhr0JRkcHLRnn322HRoastZaWy6XG8rst99+ddcLFy60r3/96+1jjz2mtrvDDjtYAPbf//63tdbaf/zjHxaA3W233dQ62267rQVg77zzTmuttU8//XRDmakkXLeddtrJArB33XWXtbZ2Xw866CC1je9+97sWgL3//vuzOt/73vfs888/r/bz8ssv2xNOOCG7Z5Lcf//99uqrr841nsHBQbt48eK6z6rVaq42JLn++uvtPffck10PDQ3ZJ598Mrvu6emx++23n33qqaeyz84991x71llnqW0+9NBDFoCdPXt29lnMXLngggvsLbfckl2vv/76FoBdtmyZtdbaf/7znxaAnTNnTlbmrrvusj/96U+z6+OPP94CsGeeeaba9+DgoO3p6fHqwuWee+6xX/7yl+3IyIi11tpKpWLf+ta32j/96U9qPzfddJPdZJNN7IsvvmittXbBggUWgO3s7GyoQ+329PTYgw8+2D7xxBNqu29605ssAHvrrbdaa5P5NHPmTPvss89aa5N5wevw68MOO8wCsBdeeGGdblId0u3kk0+2AOzXv/51td0zzjijrs6ZZ55pAdjjjz9erbPJJptYAPaBBx6QjW+TeXrHHXdk15VKxfb19WXXP/7xjy0Ae8opp2Sf7b333vaEE07Irj/4wQ/W9fvXv/7VArCPPPJI9tnuu+9uv/rVr2bXd911V+61mkcAzLcKJk46KI/Hv/EA+nXXXdcCsL29vaNq51//+pddtGiRt8zDDz+cTe5mZcGCBXUOlQuB0xe/+MXss4GBAfvCCy942/3Upz5lTzrppOz6uuuus5tttpktl8vWWmsffPDBhnb5Ytxxxx0tAPvPf/7TWpsA2qsJ6Hfdddc6oLfW2qVLl9rBwUG1jWq1mgVDmlxxxRX24osvHr3Cq5E89dRTFoDdeOONs8+uueYa+53vfCdXO/fee6899dRTs+tnnnnGArB77rmnWueEE06wAOy3v/3t7LOJmqehfvr7+y2AurV44YUX2g9+8IO52r366qstAK9PAmBnzpyZXZ9xxhl1/fzwhz+0AOxf/vIXa621S5YssQBsqVRS+/3JT35iAdjvf//7dWW6u7tVPR555BELwM6fPz/7bO+997af/exns+u5c+daAHbBggVqOyFZsWKF/cxnPmNXrFihlhkeHrarVq1quo/xkALox0Aeeughe/bZZ495u5Mp5XJ5TDI5Ln/+85/t8uXLs+t11lnH7rTTTtn15z73OQsgy/YqlUrQ6U6m/P73v7c33nhjdn3KKacEnWMhYyPLly+3AOyXvvSlMW13ZGTE/uhHP8oyV0l+8IMfNIDpRAH99ddfb3/1q195ywwNDeVOCJrR/9prr/UC59DQkL3tttuy65GREfvxj3/c3nDDDdln06dPr+t3aGjI/uhHP6oLjh97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\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1,\n",
    "                                  sharex = False,\n",
    "                                  sharey = False,\n",
    "                                  figsize = (8,8))\n",
    "fig.suptitle('IBIs detection') \n",
    "\n",
    "t = np.arange(0, len(ppg_filt)/fs,1.0/fs)\n",
    "\n",
    "ax1.plot(t, ppg_filt, color = 'black')\n",
    "ax1.scatter(t[0] + ppg_ibis_d2max/fs,\n",
    "            ppg_filt[ppg_ibis_d2max],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax1.set_ylabel('PPG [V]')\n",
    "ax1.set_title('D2Max')\n",
    "\n",
    "ax2.plot(t, ppg_filt, color = 'black')\n",
    "ax2.scatter(t[0] + ppg_ibis_upslopes/fs,\n",
    "            ppg_filt[ppg_ibis_upslopes],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax2.set_ylabel('PPG [V]')\n",
    "ax2.set_title('Upslopes')\n",
    "\n",
    "ax3.plot(t, ppg_filt, color = 'black')\n",
    "ax3.scatter(t[0] + ppg_ibis_delineator/fs,\n",
    "            ppg_filt[ppg_ibis_delineator],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax3.set_xlabel('Time [s]')\n",
    "ax3.set_ylabel('PPG [V]')\n",
    "ax3.set_title('Delineator')\n",
    "\n",
    "ax4.plot(t, ppg_filt, color = 'black')\n",
    "ax4.scatter(t[0] + ppg_ibis_bishop/fs,\n",
    "            ppg_filt[ppg_ibis_bishop],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax4.set_xlabel('Time [s]')\n",
    "ax4.set_ylabel('PPG [V]')\n",
    "ax4.set_title('Bishop')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a53801ed",
   "metadata": {
    "id": "a53801ed"
   },
   "source": [
    "We'll use the 'Bishop' algorithm in the rest of this tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d30cafa3",
   "metadata": {
    "id": "d30cafa3"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Task:</b> Try repeating this for 'rel_segment_no = 3' How do the beat detectors perform on this patient's data?</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "500e67f2",
   "metadata": {
    "id": "500e67f2"
   },
   "source": [
    "### Detect beats in the BP signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "36a19da3",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "36a19da3",
    "outputId": "36cb9aef-26a2-4b38-e474-ad47e628e54c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 82 beats in the BP signal using the bishop algorithm\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "abp_ibis = pulse_detect(abp_filt,fs,5,'bishop', vis=True)\n",
    "print(\"Detected {} beats in the BP signal using the {} algorithm\".format(len(abp_ibis), \"bishop\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61df5930",
   "metadata": {},
   "source": [
    "### Detecting beats in BP and PPG signals using Neurokit"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b90ba46",
   "metadata": {},
   "source": [
    "We could also use a Python toolbox to detect beats in BP and PPG signals. Neurokit provides a helpful starting point."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "e4992962",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 93 beats in the PPG signal\n",
      "Detected 92 beats in the BP signal\n"
     ]
    }
   ],
   "source": [
    "import neurokit2 as nk\n",
    "\n",
    "# PPG\n",
    "pks = nk.ppg_findpeaks(ppg_filt, sampling_rate=62.5)\n",
    "ppg_ibis = pks['PPG_Peaks']\n",
    "print(\"Detected {} beats in the PPG signal\".format(len(ppg_ibis)))\n",
    "\n",
    "# BP\n",
    "pks = nk.ppg_findpeaks(abp_filt, sampling_rate=62.5)\n",
    "abp_ibis = pks['PPG_Peaks']\n",
    "print(\"Detected {} beats in the BP signal\".format(len(abp_ibis)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad4fb205",
   "metadata": {},
   "source": [
    "### Detect beats in the ECG signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "f0564ee1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 93 beats in the ECG signal using the neurokit algorithm\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/petercharlton/anaconda3/lib/python3.8/site-packages/neurokit2/signal/signal_fixpeaks.py:277: RuntimeWarning: divide by zero encountered in true_divide\n",
      "  mrrs /= th2\n",
      "/Users/petercharlton/anaconda3/lib/python3.8/site-packages/neurokit2/signal/signal_fixpeaks.py:277: RuntimeWarning: invalid value encountered in true_divide\n",
      "  mrrs /= th2\n"
     ]
    }
   ],
   "source": [
    "# based on: https://neuropsychology.github.io/NeuroKit/studies/ecg_benchmark.html\n",
    "\n",
    "import neurokit2 as nk\n",
    "\n",
    "signals, info = nk.ecg_peaks(ecg_filt, sampling_rate=62.5, correct_artifacts=True)\n",
    "\n",
    "ecg_ibis = info[\"ECG_R_Peaks\"]\n",
    "\n",
    "print(\"Detected {} beats in the ECG signal using the {} algorithm\".format(len(ecg_ibis), \"neurokit\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65a2f117",
   "metadata": {
    "id": "65a2f117"
   },
   "source": [
    "### Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "956b1637",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 572
    },
    "id": "956b1637",
    "outputId": "fe99e538-eedc-4197-97e1-404853cbde5e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'ECG')"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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iy++GJtuuimAfNs1JD5g0OcebQcoKZi7wLAtmOc5A+A6rEoAgJ9R4W9+NIU/1ikBgH/961+pAM2D+HbbbQcAePe73515Pza20Qc0mGtluCUAgAaFAIBrT3qnnXbC/PnznfvtJD4ggeTOO+/E97//fWy00UYAImP/6le/mirzwAMPpA4Fkp6mMX/961/HTjvtVNc+XxDTpk1L/X+bbbapq0MLjRanK5vkWZ7r2fusbNwlkydPHhJ0bWMA8jAOZkZIctlll+GVV15Jrvk3sLW0tGC//fZLBcOf/vSnqTaOPvpo3HvvvTjjjDPq2iE56KCDcNBBByXXe+yxBx555JFUYF6zZo1zDiW55pprUtd33nkn5s6dm9jp1KlT8a9//Qu77bZbUmbMmDEp5uq4447D3//+d2y11VbJPf/+97939sszdQDYf//9U2V+8Ytf4Fvf+lbCJJC9utbvpz71Kdx000045phjUnVM4QFt7733xqOPPooddtjB2u7++++f0o/u31zDO+ywA5544onkmuaCAib5n7e97W3WfqTHgt/1rneJX+hD+tNc8cSGn2/i7Zo65nkM0OeAIrVHDNLee+9tbZ8HYAkA7Lvvvqk6f/jDH3DJJZdgyy23BADssssuWLhwYbJGJUbpmGOOwY9+9KNkHkjXzTbbDEANgNDhXwA45JBDcNNNNyXx4EMf+hD++c9/OsHtkInWesT87LXXXrrZct1112kA+r3vfa+1zNq1a/X111/vbOdnP/uZPvTQQ51lLrvsMv3rX/+6kJ4kDz/8sN5zzz31ihUrrGUAaAB6YGBAax3pf/LJJ+uXX345KfPaa6/ptWvXJtf77befBqCfffbZ5P8A9I477ljXLsk73vEODUD/+c9/1lpr/eijj2oAevLkyXV1ent7G7rvoZBNN91UA9BPPvmk1lrr5557TgPQXV1dSZn58+frn/zkJ852Tj31VH3HHXdY/3/aaadpAPrhhx9ujuLrofT39yf2RjI4OOisw+1p3rx5GoC+8sorvft97LHHNAB9zjnnWNvlsnz58royY8aM0QD0Sy+95N23j/T09OhVq1Yl1x/84Ac1AP3LX/4y+ez+++/X3d3dVv1/8pOfaAD63HPPTT6rVqu6Wq0m17vttpsGoG+55Rattdbd3d0agG5tbU3KPPPMM3r16tV1/VA75557rgagf/zjH2ut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0FZKJWO2wQEARFn+gQDeo7V+Sxz0K01qe72UXXfdNfm7vb0dTz75ZELLmU6SHAg5OFpExx9/PICI4iND+uAHP4jtt98+MYq9994bQG0h7rfffmhtbcVuu+2WWoBAzTEdeeSRAGr0X7lcThwPGd++++6blAGAD3/4wwCigEq01mGHHYY99tgjWaTbbbddSv/Zs2ejq6sLXV1diWP62Mc+ltwPAHzve98DUAMjNGZjxoxJdPnUpz4FoJYlHXjggQBqe2rjxo1DS0sL9t5772QsL7744kRfAAm4mj17dl0wp3E55phjUvq/4x3vAABssskmSbvHHXccJk+enNT54he/mBqnAw44AABwxBFHWIP5RRddBKAGYJRS2HbbbRO0r5TCV77yFQC1x0DPOOOM5J6r1SpmzZoFIHIEHPTQOF1wwQUAogChdXTWY99998W0adMSduK4445L6U82R3T35pvXXpvB74cYHgqYXV1dqFar2GSTTTBhwgRst912yT3PmTMHQJTx0zwAwF//+lfrOJFNEjA74ogjAADvete7Us4YqAX+yy+/HECNcqY27rvvvqQf0pfmmdbD1KlTk3H56Ec/mowbAFxxxRUAakCss7MTG220UYpCP/HEEzF27Ni6eabMdZdddgEQgSGq861vfSulC9kp9T1u3Djstdde2HjjjRNdaBwITNHYEQCQ3rK5//77J3OktcaMGTMAyKCf1syb3vQmALXgR2D3jDPOSO7xlFNOAVADMCeddBIAYJdddrECo+233x5AbV4JAHzrW99K5ui5557D7373u7rg/a9//QsAsMceewAA/vCHPyT9VKvVFAuotcZrr72WgAaS8847L6kzMDCAb37zm0kd2ne///77AQBbb701pk6dio6OjhSL9qMf/SipQ4ke1aEtvdtvvz2Zj0qlkiRlAJLxp3VnbuPQGBAAoDrlcnnDZQAAfADAqwD+qpT6kVLqQMjP6b8hZYsttgAQUdNaaxxwwAFob2/HvvvumxgJ0U20ACljIxRYKpUwduzYhC4HIjoXqC1ApRSmTZuGZcuWJXXOOOOM1Cl46odoKNpnNyk4yt7JQD/5yU8CiBaVSVGZ+4y0L0X6cyNuaWlJzhaQY9pyyy0B1KjgcrmMmTNnor29Peln5syZqXvk5xyUUnj3u9+d2kOkdqnOxhtvjPHjx6f0f/e7353ae6Mg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\n",
      "text/plain": [
       "<Figure size 576x576 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "fig, (ax1,ax2,ax3) = plt.subplots(3, 1,\n",
    "                              sharex = False,\n",
    "                              sharey = False,\n",
    "                              figsize = (8,8))\n",
    "fig.suptitle('Beat detection') \n",
    "\n",
    "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
    "\n",
    "ax1.plot(t, ppg_filt, color = 'black')\n",
    "ax1.scatter(t[0] + ppg_ibis/fs,\n",
    "            ppg_filt[ppg_ibis],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax1.set_ylabel('PPG [au]')\n",
    "\n",
    "ax2.plot(t, abp_filt, color = 'black')\n",
    "ax2.scatter(t[0] + abp_ibis/fs,\n",
    "            abp_filt[abp_ibis],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax2.set_xlabel('Time [s]')\n",
    "ax2.set_ylabel('ABP [au]')\n",
    "\n",
    "ax3.plot(t, ecg_filt, color = 'black')\n",
    "ax3.scatter(t[0] + ecg_ibis/fs,\n",
    "            ecg_filt[ecg_ibis],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax3.set_xlabel('Time [s]')\n",
    "ax3.set_ylabel('ECG')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41e8edf5",
   "metadata": {
    "id": "41e8edf5"
   },
   "source": [
    "---\n",
    "## Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ecd26af",
   "metadata": {
    "id": "1ecd26af"
   },
   "source": [
    "The following functions are required for this tutorial. Run the cell below and then return to the top of the page."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "36fb7dce",
   "metadata": {
    "id": "36fb7dce",
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [],
   "source": [
    "import scipy.signal as sp\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def pulse_detect(x,fs,w,alg,vis = False):\n",
    "    \"\"\"\n",
    "    Description: Pulse detection and correction from pulsatile signals\n",
    "    Inputs:  x, array with pulsatile signal [user defined units]\n",
    "             fs, sampling rate of signal [Hz]\n",
    "             w, window length for analysis [s]\n",
    "             alg, string with the name of the algorithm to apply ['heartpy','d2max','upslopes','delineator','qppg','bishop']\n",
    "             vis, visualisation option [True, False]\n",
    "    Outputs: ibis, location of cardiac cycles as detected by the selected algorithm [number of samples]\n",
    "    \n",
    "    Algorithms:       1: HeartPy (van Gent et al, 2019, DOI: 10.1016/j.trf.2019.09.015)\n",
    "                      2: 2nd derivative maxima (Elgendi et al, 2013, DOI: 10.1371/journal.pone.0076585)\n",
    "                      3: Systolic upslopes (Arguello Prada and Serna Maldonado, 2018, \n",
    "                         DOI: 10.1080/03091902.2019.1572237)\n",
    "                      4: Delineator (Li et al, 2010, DOI: 10.1109/TBME.2005.855725)\n",
    "                      5: qppg (Vest et al, 2010, DOI: 10.1088/1361-6579/aae021)\n",
    "                      6: Bishop (Bishop and Ercole, 2018, DOI: 10.1007/978-3-319-65798-1_39)\n",
    "    Fiducial points:  1: Systolic peak (pks)\n",
    "                      2: Onset, as the minimum before the systolic peak (ons)\n",
    "                      3: Onset, using the tangent intersection method (ti) \n",
    "                      4: Diastolic peak (dpk)\n",
    "                      5: Maximum slope (m1d)\n",
    "                      6: a point from second derivative PPG (a2d)\n",
    "                      7: b point from second derivative PPG (b2d)\n",
    "                      8: c point from second derivative PPG (c2d)\n",
    "                      9: d point from second derivative PPG (d2d)\n",
    "                      10: e point from second derivative PPG (e2d)\n",
    "                      11: p1 from the third derivative PPG (p1)    \n",
    "                      12: p2 from the third derivative PPG (p2)\n",
    "    \n",
    "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
    "    \n",
    "    Version: 1.0 - June 2022\n",
    "             2.0 - July 2022: Bug corrections\n",
    "             2.1 - March 2023: Peter Charlton additional beat detectors\n",
    "    \n",
    "    Developed by: Elisa Mejía-Mejía\n",
    "                   City, University of London\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Check selected algorithm\n",
    "    pos_alg = ['heartpy','d2max','upslopes','delineator','qppg','bishop']\n",
    "    if not(alg in pos_alg):\n",
    "        print('Unknown algorithm determined. Using D2max as default')\n",
    "        alg = 'd2max'\n",
    "    \n",
    "    # Pre-processing of signal\n",
    "    x_d = sp.detrend(x)\n",
    "    sos = sp.butter(10, [0.5, 10], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x_d)\n",
    "    \n",
    "    # Peak detection in windows of length w\n",
    "    n_int = np.floor(len(x_f)/(w*fs))\n",
    "    for i in range(int(n_int)):\n",
    "        start = round(i*fs*w)\n",
    "        stop = round((i + 1)*fs*w - 1)\n",
    "        #print('Start: ' + str(start) + ', stop: ' + str(stop))\n",
    "        aux = x_f[range(start,stop)]\n",
    "        if alg == 'heartpy':\n",
    "            locs = heartpy(aux,fs,40,180,5)\n",
    "        elif alg == 'd2max':\n",
    "            locs = d2max(aux,fs)\n",
    "        elif alg == 'upslopes':\n",
    "            locs = upslopes(aux)\n",
    "        elif alg == 'delineator':\n",
    "            locs = delineator(aux,fs)  \n",
    "        elif alg == 'qppg':\n",
    "            locs = qppg(aux,fs)      \n",
    "        elif alg == 'bishop':\n",
    "            locs = bishop(aux)     \n",
    "        locs = locs + start\n",
    "        if i == 0:\n",
    "            ibis = locs\n",
    "        else:\n",
    "            ibis = np.append(ibis,locs)\n",
    "    if n_int*fs*w != len(x_f):\n",
    "        start = stop + 1\n",
    "        stop = len(x_f)\n",
    "        aux = x_f[range(start,stop)]\n",
    "        if len(aux) > 20:\n",
    "            if alg == 'heartpy':\n",
    "                locs = heartpy(aux,fs,40,180,5)\n",
    "            elif alg == 'd2max':\n",
    "                locs = d2max(aux,fs)\n",
    "            elif alg == 'upslopes':\n",
    "                locs = upslopes(aux)\n",
    "            elif alg == 'delineator':\n",
    "                locs = delineator(aux,fs) \n",
    "            elif alg == 'qppg':\n",
    "                locs = qppg(aux,fs)     \n",
    "            elif alg == 'bishop':\n",
    "                locs = bishop(aux)        \n",
    "            locs = locs + start\n",
    "            ibis = np.append(ibis,locs)\n",
    "    ind, = np.where(ibis <= len(x_f))\n",
    "    ibis = ibis[ind]\n",
    "    \n",
    "        \n",
    "    dif = np.diff(ibis)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif != 0)\n",
    "    ibis = ibis[ind]\n",
    "        \n",
    "    ibis = peak_correction(x,ibis,fs,20,5,[0.5, 1.5],vis = False)\n",
    "    \n",
    "    if vis:\n",
    "        fig, (ax1,ax2) = plt.subplots(2, 1, sharex = False, sharey = False)\n",
    "        fig.suptitle('Peak detection')\n",
    "        \n",
    "        ax1.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        ax1.scatter(ibis, x[ibis], marker = 'o', color = 'orange', zorder = 2)\n",
    "        ax1.set_xlabel('Samples')\n",
    "        ax1.set_ylabel('Amplitude [V]')\n",
    "        \n",
    "        ax2.plot(x_f, color = 'lightgrey', zorder = 1)\n",
    "        ax2.scatter(ibis, x_f[ibis], marker = 'o', color = 'orange', zorder = 2)\n",
    "        ax2.set_xlabel('Samples')\n",
    "        ax2.set_ylabel('Amplitude [V]')\n",
    "            \n",
    "    return ibis\n",
    "\n",
    "def peak_correction(x,locs,fs,t,stride,th_len,vis = False):\n",
    "    \"\"\"\n",
    "    Correction of peaks detected from pulsatile signals\n",
    "    \n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              locs, location of the detected interbeat intervals [number of samples]\n",
    "              fs, sampling rate [Hz]\n",
    "              t, duration of intervals for the correction [s]\n",
    "              stride, stride between consecutive intervals for the correction [s]\n",
    "              th_len, array with the percentage of lower and higher thresholds for comparing the duration of IBIs \n",
    "              [proportions] \n",
    "              vis, visualisation option [True, False]\n",
    "    Outputs:  ibis, array with the corrected points related to the start of the inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "                   2.0 -   July 2022: Bug corrections\n",
    "\n",
    "    \"\"\"\n",
    "    \n",
    "    if vis:\n",
    "        fig = plt.figure()\n",
    "        plt.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'red', zorder = 2, label = 'Original')\n",
    "        plt.title('Peak correction')\n",
    "            \n",
    "    # Correction of long and short IBIs\n",
    "    aux_locs = np.empty(0)\n",
    "    len_window = np.round(t*fs)\n",
    "    #print('Window length: ' + str(len_window))\n",
    "    first_i = 0\n",
    "    second_i = len_window - 1\n",
    "    \n",
    "    # check whether the input signal was long enough for this step (added by PC, 20230309)\n",
    "    if second_i >= len(x):\n",
    "        print('Input signal not long enough for peak correction')\n",
    "    \n",
    "    while second_i < len(x):\n",
    "        ind1, = np.where(locs >= first_i)\n",
    "        ind2, = np.where(locs <= second_i)\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        \n",
    "        win = locs[ind]\n",
    "        dif = np.diff(win)\n",
    "        #print('Indices: ' + str(ind) + ', locs: ' + str(locs[ind]) + ', dif: ' + str(dif))\n",
    "        \n",
    "        # Correction of repeated IBIs\n",
    "        ind_zeros, = np.where(dif == 0)\n",
    "        #print(ind_zeros, dif[ind_zeros], dif)\n",
    "        if len(ind_zeros) != 0:\n",
    "            #print('entro!' + str(dif) + ',' + str(ind_zeros))\n",
    "            dif = np.delete(dif, ind_zeros)\n",
    "            #print(dif)\n",
    "        \n",
    "        th_dif = np.zeros(2)\n",
    "        th_dif[0] = th_len[0]*np.median(dif)\n",
    "        th_dif[1] = th_len[1]*np.median(dif)\n",
    "        \n",
    "        th_amp = np.zeros(2)\n",
    "        th_amp[0] = 0.75*np.median(x[win])\n",
    "        th_amp[1] = 1.25*np.median(x[win])\n",
    "        #print('Length thresholds: ' + str(th_dif) + ', amplitude thresholds: ' + str(th_amp))\n",
    "        \n",
    "        j = 0\n",
    "        while j < len(dif):\n",
    "            if dif[j] <= th_dif[0]:\n",
    "                #print('IBI pos ' + str(j) + ': Shorter than threshold')\n",
    "                if j == 0:\n",
    "                    opt = np.append(win[j], win[j + 1])\n",
    "                else:\n",
    "                    opt = np.append(win[j] - win[j - 1], win[j + 1] - win[j - 1])\n",
    "                #print('Optional: ' + str(opt))\n",
    "                dif_abs = np.abs(opt - np.median(dif))\n",
    "                min_val = np.min(dif_abs)\n",
    "                ind_min, = np.where(dif_abs == min_val)\n",
    "                ind_min = ind_min[0]\n",
    "                #print('Minimum: ' + str(min_val) + ', index: ' + str(ind_min))\n",
    "                if ind_min == 0:\n",
    "                    #print('Original window: ' + str(win), end = '')\n",
    "                    win = np.delete(win, j + 1) \n",
    "                    #print(', modified window: ' + str(win))\n",
    "                else:\n",
    "                    #print('Original window: ' + str(win), end = '')\n",
    "                    win = np.delete(win, j) \n",
    "                    #print(', modified window: ' + str(win))\n",
    "                dif = np.diff(win)\n",
    "            elif dif[j] >= th_dif[1]:\n",
    "                #print('IBI pos ' + str(j) + ': Longer than threshold')\n",
    "                aux_x = x[win[j]:win[j + 1]]\n",
    "                locs_pks, _ = sp.find_peaks(aux_x)\n",
    "                #print('Possible peaks: ' + str(locs_pks))\n",
    "                #fig = plt.figure()\n",
    "                #plt.plot(aux_x)\n",
    "                #plt.scatter(locs_pks,aux_x[locs_pks],marker = 'o',color = 'red')\n",
    "                               \n",
    "                if len(locs_pks) > 0:\n",
    "                    locs_pks = locs_pks + win[j]\n",
    "                    #print('Possible peaks with offset: ' + str(locs_pks) + ', amplitudes: ' + str(x[locs_pks]) \n",
    "                    #     + ', amplitude thresholds: ' + str(th_amp))\n",
    "                    #ind1, = np.where(x[locs_pks] >= th_amp[0])\n",
    "                    #ind2, = np.where(x[locs_pks] <= th_amp[1])\n",
    "                    #ind = np.intersect1d(ind1, ind2)\n",
    "                    #print(th_amp, locs_pks, ind, dif_abs, locs_pks, win[j])\n",
    "                    #locs_pks = locs_pks[ind]\n",
    "                    #print('Locations: ' + str(locs_pks))\n",
    "                \n",
    "                    opt = locs_pks - win[j]\n",
    "                    \n",
    "                    dif_abs = np.abs(opt - np.median(dif))\n",
    "                    #print(dif_abs, opt, locs_pks)\n",
    "                    min_val = np.min(dif_abs)\n",
    "                    ind_min, = np.where(dif_abs == min_val)\n",
    "                    \n",
    "                    win = np.append(win, locs_pks[ind_min])\n",
    "                    win = np.sort(win)                    \n",
    "                    dif = np.diff(win)\n",
    "                    j = j + 1\n",
    "                else:\n",
    "                    opt = np.round(win[j] + np.median(dif))\n",
    "                    if opt < win[j + 1]:\n",
    "                        #print(win[j], np.median(dif), opt, dif, ind_min, locs_pks)\n",
    "                        win = np.append(win, opt.astype(int))\n",
    "                        win = np.sort(win)                  \n",
    "                        dif = np.diff(win)\n",
    "                        j = j + 1\n",
    "                    else:\n",
    "                        j = j + 1\n",
    "            else:\n",
    "                j = j + 1\n",
    "        \n",
    "        if len(aux_locs) == 0:\n",
    "            aux_locs = win\n",
    "        else:\n",
    "            aux_locs = np.append(aux_locs, win)\n",
    "        aux_locs = np.sort(aux_locs)\n",
    "        \n",
    "        first_i = first_i + stride*fs - 1\n",
    "        second_i = second_i + stride*fs - 1\n",
    "    \n",
    "    locs = aux_locs\n",
    "\n",
    "    dif = np.diff(locs)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif != 0)\n",
    "    locs = locs[ind]\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'green', zorder = 2, label = 'After length correction')\n",
    "    \n",
    "    # Correction of points that are not peaks\n",
    "    i = 0\n",
    "    pre_loc = 0\n",
    "    while i < len(locs):\n",
    "        if locs[i] == 0:\n",
    "            locs = np.delete(locs, i)\n",
    "        elif locs[i] == len(x):\n",
    "            locs = np.delete(locs, i)\n",
    "        else:\n",
    "            #print('Previous: ' + str(x[locs[i] - 1]) + ', actual: ' + str(x[locs[i]]) + ', next: ' + str(x[locs[i] + 1])) \n",
    "            cond = (x[locs[i]] >= x[locs[i] - 1]) and (x[locs[i]] >= x[locs[i] + 1])\n",
    "            #print('Condition: ' + str(cond)) \n",
    "            if cond:\n",
    "                i = i + 1\n",
    "            else:\n",
    "                if locs[i] == pre_loc:\n",
    "                    i = i + 1\n",
    "                else:\n",
    "                    if i == 0:\n",
    "                        aux = x[0:locs[i + 1] - 1]\n",
    "                        aux_loc = locs[i] - 1\n",
    "                        aux_start = 0\n",
    "                    elif i == len(locs) - 1:\n",
    "                        aux = x[locs[i - 1]:len(x) - 1]\n",
    "                        aux_loc = locs[i] - locs[i - 1]\n",
    "                        aux_start = locs[i - 1]\n",
    "                    else:\n",
    "                        aux = x[locs[i - 1]:locs[i + 1]]\n",
    "                        aux_loc = locs[i] - locs[i - 1]\n",
    "                        aux_start = locs[i - 1]\n",
    "                    #print('i ' + str(i) + ' out of ' + str(len(locs)) + ', aux length: ' + str(len(aux)) + \n",
    "                    #      ', location: ' + str(aux_loc))\n",
    "                    #print('Locs i - 1: ' + str(locs[i - 1]) + ', locs i: ' + str(locs[i]) + ', locs i + 1: ' + str(locs[i + 1]))\n",
    "\n",
    "                    pre = find_closest_peak(aux, aux_loc, 'backward')\n",
    "                    pos = find_closest_peak(aux, aux_loc, 'forward')\n",
    "                    #print('Previous: ' + str(pre) + ', next: ' + str(pos) + ', actual: ' + str(aux_loc))\n",
    "\n",
    "                    ibi_pre = np.append(pre - 1, len(aux) - pre)\n",
    "                    ibi_pos = np.append(pos - 1, len(aux) - pos)\n",
    "                    ibi_act = np.append(aux_loc - 1, len(aux) - aux_loc)\n",
    "                    #print('Previous IBIs: ' + str(ibi_pre) + ', next IBIs: ' + str(ibi_pos) + \n",
    "                    #      ', actual IBIs: ' + str(ibi_act))\n",
    "\n",
    "                    dif_pre = np.abs(ibi_pre - np.mean(np.diff(locs)))\n",
    "                    dif_pos = np.abs(ibi_pos - np.mean(np.diff(locs)))\n",
    "                    dif_act = np.abs(ibi_act - np.mean(np.diff(locs)))\n",
    "                    #print('Previous DIF: ' + str(dif_pre) + ', next DIF: ' + str(dif_pos) + \n",
    "                    #      ', actual DIF: ' + str(dif_act))\n",
    "\n",
    "                    avgs = [np.mean(dif_pre), np.mean(dif_pos), np.mean(dif_act)]\n",
    "                    min_avg = np.min(avgs)\n",
    "                    ind, = np.where(min_avg == avgs)\n",
    "                    #print('Averages: ' + str(avgs) + ', min index: ' + str(ind))\n",
    "                    if len(ind) != 0:                        \n",
    "                        ind = ind[0]\n",
    "\n",
    "                    if ind == 0:\n",
    "                        locs[i] = pre + aux_start - 1                    \n",
    "                    elif ind == 1:\n",
    "                        locs[i] = pos + aux_start - 1\n",
    "                    elif ind == 2:\n",
    "                        locs[i] = aux_loc + aux_start - 1\n",
    "                    i = i + 1\n",
    "    \n",
    "    if vis: \n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'yellow', zorder = 2, label = 'After not-peak correction')\n",
    "    \n",
    "    # Correction of peaks according to amplitude\n",
    "    len_window = np.round(t*fs)\n",
    "    #print('Window length: ' + str(len_window))\n",
    "    delete = np.empty(0)\n",
    "    first_i = 0\n",
    "    second_i = len_window - 1\n",
    "    while second_i < len(x):\n",
    "        ind1, = np.where(locs >= first_i)\n",
    "        ind2, = np.where(locs <= second_i)\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        win = locs[ind]\n",
    "        if np.median(x[win]) > 0:\n",
    "            th_amp_low = 0.5*np.median(x[win])\n",
    "            th_amp_high = 3.0*np.median(x[win])\n",
    "        else:\n",
    "            th_amp_low = -3.0*np.median(x[win])\n",
    "            th_amp_high = 1.5*np.median(x[win])\n",
    "        ind1, = np.where(x[win] < th_amp_low)\n",
    "        ind2, = np.where(x[win] > th_amp_high)\n",
    "        aux_del = np.intersect1d(ind1,ind2)\n",
    "        if len(aux_del) != 0:\n",
    "            for j in aux_del:\n",
    "                ind, = np.where(locs == win[j])\n",
    "                delete = np.append(delete, aux_del)\n",
    "                #print(aux_del, delete)\n",
    "        \n",
    "        first_i = second_i + 1\n",
    "        second_i = second_i + stride*fs - 1\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'cyan', zorder = 2, label = 'After amplitude correction')\n",
    "    \n",
    "    if len(delete) != 0:\n",
    "        #print(delete)\n",
    "        locs = np.delete(locs, delete.astype(int))\n",
    "    \n",
    "    dif = np.diff(locs)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif >= fs/3)\n",
    "    locs = locs[ind]\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'purple', zorder = 2, label = 'After amplitude correction')\n",
    "        plt.legend()\n",
    "    \n",
    "    return locs\n",
    "\n",
    "def fiducial_points(x,pks,fs,vis = False):\n",
    "    \"\"\"\n",
    "    Description: Pulse detection and correction from pulsatile signals\n",
    "    Inputs:  x, array with pulsatile signal [user defined units]\n",
    "             pks, array with the position of the peaks [number of samples]\n",
    "             fs, sampling rate of signal [Hz]\n",
    "             vis, visualisation option [True, False]\n",
    "    Outputs: fidp, dictionary with the positions of several fiducial points for the cardiac cycles [number of samples]\n",
    "    \n",
    "    Fiducial points:  1: Systolic peak (pks)\n",
    "                      2: Onset, as the minimum before the systolic peak (ons)\n",
    "                      3: Onset, using the tangent intersection method (ti) \n",
    "                      4: Diastolic peak (dpk)\n",
    "                      5: Maximum slope (m1d)\n",
    "                      6: a point from second derivative PPG (a2d)\n",
    "                      7: b point from second derivative PPG (b2d)\n",
    "                      8: c point from second derivative PPG (c2d)\n",
    "                      9: d point from second derivative PPG (d2d)\n",
    "                      10: e point from second derivative PPG (e2d)\n",
    "                      11: p1 from the third derivative PPG (p1)    \n",
    "                      12: p2 from the third derivative PPG (p2)\n",
    "    \n",
    "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
    "    \n",
    "    Version: 1.0 - June 2022\n",
    "    \n",
    "    Developed by: Elisa Mejía-Mejía\n",
    "                   City, University of London\n",
    "    \n",
    "    \"\"\"    \n",
    "    # First, second and third derivatives\n",
    "    d1x = sp.savgol_filter(x, 9, 5, deriv = 1) \n",
    "    d2x = sp.savgol_filter(x, 9, 5, deriv = 2) \n",
    "    d3x = sp.savgol_filter(x, 9, 5, deriv = 3) \n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x/np.max(x))\n",
    "    #plt.plot(d1x/np.max(d1x))\n",
    "    #plt.plot(d2x/np.max(d2x))\n",
    "    #plt.plot(d3x/np.max(d3x))\n",
    "    \n",
    "    # Search in time series: Onsets between consecutive peaks\n",
    "    ons = np.empty(0)\n",
    "    for i in range(len(pks) - 1):\n",
    "        start = pks[i]\n",
    "        stop = pks[i + 1]\n",
    "        ibi = x[start:stop]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi, color = 'black')\n",
    "        aux_ons, = np.where(ibi == np.min(ibi))\n",
    "        ind_ons = aux_ons.astype(int)\n",
    "        ons = np.append(ons, ind_ons + start)   \n",
    "        #plt.plot(ind_ons, ibi[ind_ons], marker = 'o', color = 'red') \n",
    "    ons = ons.astype(int)\n",
    "    #print('Onsets: ' + str(ons))\n",
    "    #plt.figure()\n",
    "    #plt.plot(x, color = 'black')\n",
    "    #plt.scatter(pks, x[pks], marker = 'o', color = 'red') \n",
    "    #plt.scatter(ons, x[ons], marker = 'o', color = 'blue') \n",
    "    \n",
    "    # Search in time series: Diastolic peak and dicrotic notch between consecutive onsets\n",
    "    dia = np.empty(0)\n",
    "    dic = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ind_pks = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
    "        if len(ind_pks) != 0:\n",
    "            ind_pks = ind_pks[0]\n",
    "            ind_pks = pks[ind_pks]\n",
    "            ibi_portion = x[ind_pks:stop]\n",
    "            ibi_2d_portion = d2x[ind_pks:stop]\n",
    "            #plt.figure()\n",
    "            #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "            #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "            aux_dic, _ = sp.find_peaks(ibi_2d_portion)\n",
    "            aux_dic = aux_dic.astype(int)\n",
    "            aux_dia, _ = sp.find_peaks(-ibi_2d_portion)\n",
    "            aux_dia = aux_dia.astype(int)   \n",
    "            if len(aux_dic) != 0:\n",
    "                ind_max, = np.where(ibi_2d_portion[aux_dic] == np.max(ibi_2d_portion[aux_dic]))\n",
    "                aux_dic_max = aux_dic[ind_max]\n",
    "                if len(aux_dia) != 0:\n",
    "                    nearest = aux_dia - aux_dic_max\n",
    "                    aux_dic = aux_dic_max\n",
    "                    dic = np.append(dic, (aux_dic + ind_pks).astype(int))\n",
    "                    #plt.scatter(aux_dic, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
    "                    ind_dia, = np.where(nearest > 0)\n",
    "                    aux_dia = aux_dia[ind_dia]\n",
    "                    nearest = nearest[ind_dia]\n",
    "                    if len(nearest) != 0:\n",
    "                        ind_nearest, = np.where(nearest == np.min(nearest))\n",
    "                        aux_dia = aux_dia[ind_nearest]\n",
    "                        dia = np.append(dia, (aux_dia + ind_pks).astype(int))\n",
    "                        #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')\n",
    "                        #break\n",
    "                else:\n",
    "                    dic = np.append(dic, (aux_dic_max + ind_pks).astype(int))\n",
    "                    #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')     \n",
    "    dia = dia.astype(int)\n",
    "    dic = dic.astype(int)\n",
    "    #plt.scatter(dia, x[dia], marker = 'o', color = 'orange')\n",
    "    #plt.scatter(dic, x[dic], marker = 'o', color = 'green')\n",
    "    \n",
    "    # Search in D1: Maximum slope point\n",
    "    m1d = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ind_pks = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
    "        if len(ind_pks) != 0:\n",
    "            ind_pks = ind_pks[0]\n",
    "            ind_pks = pks[ind_pks]\n",
    "            ibi_portion = x[start:ind_pks]\n",
    "            ibi_1d_portion = d1x[start:ind_pks]\n",
    "            #plt.figure()\n",
    "            #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "            #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "            aux_m1d, _ = sp.find_peaks(ibi_1d_portion)\n",
    "            aux_m1d = aux_m1d.astype(int)  \n",
    "            if len(aux_m1d) != 0:\n",
    "                ind_max, = np.where(ibi_1d_portion[aux_m1d] == np.max(ibi_1d_portion[aux_m1d]))\n",
    "                aux_m1d_max = aux_m1d[ind_max]\n",
    "                if len(aux_m1d_max) > 1:\n",
    "                    aux_m1d_max = aux_m1d_max[0]\n",
    "                m1d = np.append(m1d, (aux_m1d_max + start).astype(int))\n",
    "                #plt.scatter(aux_m1d, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
    "                #break    \n",
    "    m1d = m1d.astype(int)\n",
    "    #plt.scatter(m1d, x[m1d], marker = 'o', color = 'purple')\n",
    "    \n",
    "    # Search in time series: Tangent intersection points\n",
    "    tip = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ind_m1d = np.intersect1d(np.where(m1d < stop), np.where(m1d > start))\n",
    "        ind_m1d = m1d[ind_m1d] - start\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.scatter(ind_m1d, ibi_portion[ind_m1d]/np.max(ibi_portion), marker = 'o')\n",
    "        #plt.scatter(ind_m1d, ibi_1d_portion[ind_m1d]/np.max(ibi_1d_portion), marker = 'o')\n",
    "        aux_tip = np.round(((ibi_portion[0] - ibi_portion[ind_m1d])/ibi_1d_portion[ind_m1d]) + ind_m1d)\n",
    "        aux_tip = aux_tip.astype(int)\n",
    "        tip = np.append(tip, (aux_tip + start).astype(int))        \n",
    "        #plt.scatter(aux_tip, ibi_portion[aux_tip]/np.max(ibi_portion), marker = 'o')\n",
    "        #break\n",
    "    tip = tip.astype(int)\n",
    "    #plt.scatter(tip, x[tip], marker = 'o', color = 'aqua')\n",
    "    \n",
    "    # Search in D2: A, B, C, D and E points\n",
    "    a2d = np.empty(0)\n",
    "    b2d = np.empty(0)\n",
    "    c2d = np.empty(0)\n",
    "    d2d = np.empty(0)\n",
    "    e2d = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ibi_2d_portion = d2x[start:stop]\n",
    "        ind_m1d = np.intersect1d(np.where(m1d > start),np.where(m1d < stop))\n",
    "        ind_m1d = m1d[ind_m1d]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "        aux_m2d_pks, _ = sp.find_peaks(ibi_2d_portion)\n",
    "        aux_m2d_ons, _ = sp.find_peaks(-ibi_2d_portion)\n",
    "        if len(ind_m1d) != 0 and len(aux_m2d_pks) != 0 and len(aux_m2d_ons) != 0:\n",
    "            # a point:\n",
    "            ind_a, = np.where(ibi_2d_portion[aux_m2d_pks] == np.max(ibi_2d_portion[aux_m2d_pks]))\n",
    "            ind_a = aux_m2d_pks[ind_a]\n",
    "            if (ind_a < ind_m1d):\n",
    "                a2d = np.append(a2d, ind_a + start)\n",
    "                #plt.scatter(ind_a, ibi_2d_portion[ind_a]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # b point:\n",
    "                ind_b = np.where(ibi_2d_portion[aux_m2d_ons] == np.min(ibi_2d_portion[aux_m2d_ons]))\n",
    "                ind_b = aux_m2d_ons[ind_b]\n",
    "                if (ind_b > ind_a) and (ind_b < len(ibi_2d_portion)):\n",
    "                    b2d = np.append(b2d, ind_b + start)\n",
    "                    #plt.scatter(ind_b, ibi_2d_portion[ind_b]/np.max(ibi_2d_portion), marker = 'o')\n",
    "            # e point:\n",
    "            ind_e, = np.where(aux_m2d_pks > ind_m1d - start)\n",
    "            aux_m2d_pks = aux_m2d_pks[ind_e]\n",
    "            ind_e, = np.where(aux_m2d_pks < 0.6*len(ibi_2d_portion))\n",
    "            ind_e = aux_m2d_pks[ind_e]\n",
    "            if len(ind_e) >= 1:\n",
    "                if len(ind_e) >= 2:\n",
    "                    ind_e = ind_e[1]\n",
    "                e2d = np.append(e2d, ind_e + start)\n",
    "                #plt.scatter(ind_e, ibi_2d_portion[ind_e]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # c point:\n",
    "                ind_c, = np.where(aux_m2d_pks < ind_e)\n",
    "                if len(ind_c) != 0:\n",
    "                    ind_c_aux = aux_m2d_pks[ind_c]\n",
    "                    ind_c, = np.where(ibi_2d_portion[ind_c_aux] == np.max(ibi_2d_portion[ind_c_aux]))\n",
    "                    ind_c = ind_c_aux[ind_c]\n",
    "                    if len(ind_c) != 0:\n",
    "                        c2d = np.append(c2d, ind_c + start)\n",
    "                        #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                else:\n",
    "                    aux_m1d_ons, _ = sp.find_peaks(-ibi_1d_portion)\n",
    "                    ind_c, = np.where(aux_m1d_ons < ind_e)\n",
    "                    ind_c_aux = aux_m1d_ons[ind_c]\n",
    "                    if len(ind_c) != 0:\n",
    "                        ind_c, = np.where(ind_c_aux > ind_b)\n",
    "                        ind_c = ind_c_aux[ind_c]\n",
    "                        if len(ind_c) > 1:\n",
    "                            ind_c = ind_c[0]\n",
    "                        c2d = np.append(c2d, ind_c + start)\n",
    "                        #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # d point:\n",
    "                if (isinstance(ind_c, np.ndarray)) and len(ind_c) != 0:\n",
    "                    ind_d = np.intersect1d(np.where(aux_m2d_ons < ind_e), np.where(aux_m2d_ons > ind_c))\n",
    "                    if len(ind_d) != 0:\n",
    "                        ind_d_aux = aux_m2d_ons[ind_d]\n",
    "                        ind_d, = np.where(ibi_2d_portion[ind_d_aux] == np.min(ibi_2d_portion[ind_d_aux]))\n",
    "                        ind_d = ind_d_aux[ind_d]\n",
    "                        if len(ind_d) != 0:\n",
    "                            d2d = np.append(d2d, ind_d + start)\n",
    "                            #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')                \n",
    "                    else:\n",
    "                        ind_d = ind_c\n",
    "                        d2d = np.append(d2d, ind_d + start)\n",
    "                        #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')\n",
    "    a2d = a2d.astype(int)\n",
    "    b2d = b2d.astype(int)\n",
    "    c2d = c2d.astype(int)\n",
    "    d2d = d2d.astype(int)\n",
    "    e2d = e2d.astype(int)\n",
    "    #plt.figure()\n",
    "    #plt.plot(d2x, color = 'black')\n",
    "    #plt.scatter(a2d, d2x[a2d], marker = 'o', color = 'red') \n",
    "    #plt.scatter(b2d, d2x[b2d], marker = 'o', color = 'blue')\n",
    "    #plt.scatter(c2d, d2x[c2d], marker = 'o', color = 'green')\n",
    "    #plt.scatter(d2d, d2x[d2d], marker = 'o', color = 'orange')\n",
    "    #plt.scatter(e2d, d2x[e2d], marker = 'o', color = 'purple')\n",
    "    \n",
    "    # Search in D3: P1 and P2 points\n",
    "    p1p = np.empty(0)\n",
    "    p2p = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ibi_2d_portion = d2x[start:stop]\n",
    "        ibi_3d_portion = d3x[start:stop]\n",
    "        ind_b = np.intersect1d(np.where(b2d > start),np.where(b2d < stop))\n",
    "        ind_b = b2d[ind_b]\n",
    "        ind_c = np.intersect1d(np.where(c2d > start),np.where(c2d < stop))\n",
    "        ind_c = c2d[ind_c]\n",
    "        ind_d = np.intersect1d(np.where(d2d > start),np.where(d2d < stop))\n",
    "        ind_d = d2d[ind_d]\n",
    "        ind_dic = np.intersect1d(np.where(dic > start),np.where(dic < stop))\n",
    "        ind_dic = dic[ind_dic]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "        #plt.plot(ibi_3d_portion/np.max(ibi_3d_portion))\n",
    "        #plt.scatter(ind_b - start, ibi_3d_portion[ind_b - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_c - start, ibi_3d_portion[ind_c - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_d - start, ibi_3d_portion[ind_d - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_dic - start, ibi_3d_portion[ind_dic - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        aux_p3d_pks, _ = sp.find_peaks(ibi_3d_portion)\n",
    "        aux_p3d_ons, _ = sp.find_peaks(-ibi_3d_portion)\n",
    "        # P1:\n",
    "        if (len(aux_p3d_pks) != 0 and len(ind_b) != 0):\n",
    "            ind_p1, = np.where(aux_p3d_pks > ind_b - start)\n",
    "            if len(ind_p1) != 0:\n",
    "                ind_p1 = aux_p3d_pks[ind_p1[0]]\n",
    "                p1p = np.append(p1p, ind_p1 + start)\n",
    "                #plt.scatter(ind_p1, ibi_3d_portion[ind_p1]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        # P2:\n",
    "        if (len(aux_p3d_ons) != 0 and len(ind_c) != 0 and len(ind_d) != 0):\n",
    "            if ind_c == ind_d:\n",
    "                ind_p2, = np.where(aux_p3d_ons > ind_d - start)\n",
    "                ind_p2 = aux_p3d_ons[ind_p2[0]]\n",
    "            else:\n",
    "                ind_p2, = np.where(aux_p3d_ons < ind_d - start)\n",
    "                ind_p2 = aux_p3d_ons[ind_p2[-1]]\n",
    "            if len(ind_dic) != 0:\n",
    "                aux_x_pks, _ = sp.find_peaks(ibi_portion)\n",
    "                if ind_p2 > ind_dic - start:\n",
    "                    ind_between = np.intersect1d(np.where(aux_x_pks < ind_p2), np.where(aux_x_pks > ind_dic - start))\n",
    "                else:\n",
    "                    ind_between = np.intersect1d(np.where(aux_x_pks > ind_p2), np.where(aux_x_pks < ind_dic - start))\n",
    "                if len(ind_between) != 0:\n",
    "                    ind_p2 = aux_x_pks[ind_between[0]]\n",
    "            p2p = np.append(p2p, ind_p2 + start)\n",
    "            #plt.scatter(ind_p2, ibi_3d_portion[ind_p2]/np.max(ibi_3d_portion), marker = 'o')\n",
    "    p1p = p1p.astype(int)\n",
    "    p2p = p2p.astype(int)\n",
    "    #plt.figure()\n",
    "    #plt.plot(d3x, color = 'black')\n",
    "    #plt.scatter(p1p, d3x[p1p], marker = 'o', color = 'green') \n",
    "    #plt.scatter(p2p, d3x[p2p], marker = 'o', color = 'orange')\n",
    "        \n",
    "    if vis == True:\n",
    "        fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1, sharex = True, sharey = False, figsize=(10,10))\n",
    "        fig.suptitle('Fiducial points') \n",
    "\n",
    "        ax1.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        ax1.scatter(pks, x[pks.astype(int)], color = 'purple', zorder = 2, label = 'pks')\n",
    "        ax1.scatter(ons, x[ons.astype(int)], color = 'blue', zorder = 3, label = 'ons')\n",
    "        ax1.scatter(dia, x[dia.astype(int)], color = 'yellow', zorder = 4, label = 'dia')\n",
    "        ax1.scatter(dic, x[dic.astype(int)], color = 'green', zorder = 5, label = 'dic')\n",
    "        ax1.scatter(tip, x[tip.astype(int)], color = 'orange', zorder = 6, label = 'tip')\n",
    "        ax1.legend()\n",
    "        ax1.set_ylabel('x')\n",
    "\n",
    "        ax2.plot(d1x, color = 'lightgrey', zorder = 1)\n",
    "        ax2.scatter(m1d, d1x[m1d.astype(int)], color = 'orange', zorder = 2, label = 'm1d')\n",
    "        ax2.legend()\n",
    "        ax2.set_ylabel('d1x')\n",
    "\n",
    "        ax3.plot(d2x, color = 'lightgrey', zorder = 1)\n",
    "        ax3.scatter(a2d, d2x[a2d.astype(int)], color = 'purple', zorder = 2, label = 'a')\n",
    "        ax3.scatter(b2d, d2x[b2d.astype(int)], color = 'blue', zorder = 3, label = 'b')\n",
    "        ax3.scatter(c2d, d2x[c2d.astype(int)], color = 'yellow', zorder = 4, label = 'c')\n",
    "        ax3.scatter(d2d, d2x[d2d.astype(int)], color = 'green', zorder = 5, label = 'd')\n",
    "        ax3.scatter(e2d, d2x[e2d.astype(int)], color = 'orange', zorder = 6, label = 'e')\n",
    "        ax3.legend()\n",
    "        ax3.set_ylabel('d2x')\n",
    "\n",
    "        ax4.plot(d3x, color = 'lightgrey', zorder = 1)\n",
    "        ax4.scatter(p1p, d3x[p1p.astype(int)], color = 'purple', zorder = 2, label = 'p1')\n",
    "        ax4.scatter(p2p, d3x[p2p.astype(int)], color = 'blue', zorder = 3, label = 'p2')\n",
    "        ax4.legend()\n",
    "        ax4.set_ylabel('d3x')\n",
    "\n",
    "        plt.subplots_adjust(left = 0.1,\n",
    "                            bottom = 0.1, \n",
    "                            right = 0.9, \n",
    "                            top = 0.9, \n",
    "                            wspace = 0.4, \n",
    "                            hspace = 0.4)\n",
    "        \n",
    "    # Creation of dictionary\n",
    "    fidp = {'pks': pks.astype(int),\n",
    "            'ons': ons.astype(int),\n",
    "            'tip': tip.astype(int),\n",
    "            'dia': dia.astype(int),\n",
    "            'dic': dic.astype(int),\n",
    "            'm1d': m1d.astype(int),\n",
    "            'a2d': a2d.astype(int),\n",
    "            'b2d': b2d.astype(int),\n",
    "            'c2d': c2d.astype(int),\n",
    "            'd2d': d2d.astype(int),\n",
    "            'e2d': e2d.astype(int),\n",
    "            'p1p': p1p.astype(int),\n",
    "            'p2p': p2p.astype(int)\n",
    "            }\n",
    "    return fidp\n",
    "\n",
    "def find_closest_peak(x, loc, dir_search):\n",
    "    \"\"\"\n",
    "    Finds the closest peak to the initial location in x\n",
    "    \n",
    "    Inputs:   x, signal of interest [user defined units]\n",
    "              loc, initial location [number of samples]\n",
    "              dir_search, direction of search ['backward','forward']\n",
    "    Outputs:  pos, location of the first peak detected in specified direction [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "        \n",
    "    \"\"\"\n",
    "    \n",
    "    pos = -1\n",
    "    if dir_search == 'backward':\n",
    "        i = loc - 2\n",
    "        while i > 0:\n",
    "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
    "                pos = i\n",
    "                i = 0\n",
    "            else:\n",
    "                i = i - 1\n",
    "        if pos == -1:\n",
    "            pos = loc\n",
    "    elif dir_search == 'forward':\n",
    "        i = loc + 1\n",
    "        while i < len(x) - 1:\n",
    "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
    "                pos = i\n",
    "                i = len(x)\n",
    "            else:\n",
    "                i = i + 1\n",
    "        if pos == -1:\n",
    "            pos = loc\n",
    "    \n",
    "    return pos\n",
    "\n",
    "def heartpy(x, fs, min_ihr, max_ihr, w):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using HeartPy\n",
    "    Citation: van Gent P, Farah H, van Nes N, van Arem B (2019) Heartpy: A novel heart rate algorithm\n",
    "              for the analysis of noisy signals. Transp Res Part F, vol. 66, pp. 368-378. DOI: 10.1016/j.trf.2019.09.015\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "              min_ihr, minimum value of instantaneous heart rate to be accepted [bpm]\n",
    "              max_ihr, maximum value of instantaneous heart rate to be accepted [bpm]\n",
    "              w, length of segments for correction of peaks [s]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Identification of peaks\n",
    "    is_roi = 0\n",
    "    n_rois = 0\n",
    "    pos_pks = np.empty(0).astype(int)\n",
    "    locs = np.empty(0).astype(int)\n",
    "    \n",
    "    len_ma = int(np.round(0.75*fs))\n",
    "    #print(len_ma)\n",
    "    sig = np.append(x[0]*np.ones(len_ma), x)\n",
    "    sig = np.append(sig, x[-1]*np.ones(len_ma))\n",
    "    \n",
    "    i = len_ma\n",
    "    while i < len(sig) - len_ma:\n",
    "        ma = np.mean(sig[i - len_ma:i + len_ma - 1])\n",
    "        #print(len(sig[i - len_ma:i + len_ma - 1]),ma)\n",
    "        \n",
    "        # If it is the beginning of a new ROI:    \n",
    "        if is_roi == 0 and sig[i] >= ma:    \n",
    "            is_roi = 1\n",
    "            n_rois = n_rois + 1\n",
    "            #print('New ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
    "            # If it is a peak:\n",
    "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
    "                pos_pks = np.append(pos_pks, int(i))\n",
    "                #print('Possible peaks: ' + str(pos_pks))\n",
    "           \n",
    "        # If it is part of a ROI which is not over: \n",
    "        elif is_roi == 1 and sig[i] > ma:\n",
    "            #print('Actual ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
    "            # If it is a peak:\n",
    "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
    "                pos_pks = np.append(pos_pks, int(i))\n",
    "                #print('Possible peaks: ' + str(pos_pks))\n",
    "                \n",
    "        # If the ROI is over or the end of the signal has been reached:\n",
    "        elif is_roi == 1 and (sig[i] < ma or i == (len(sig) - len_ma)):\n",
    "            #print('End of ROI ---' + str(n_rois) + ' @ ' + str(i) + '. Pos pks: ' + str(pos_pks))\n",
    "            is_roi = 0 # Lowers flag\n",
    "            \n",
    "            # If it is the end of the first ROI:\n",
    "            if n_rois == 1:\n",
    "                # If at least one peak has been found: \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Determines the location of the maximum peak:\n",
    "                    max_pk = np.max(sig[pos_pks])\n",
    "                    ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
    "                    #print('First ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                    #      ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                    # The maximum peak is added to the list:\n",
    "                    locs = np.append(locs, pos_pks[ind])\n",
    "                    #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1\n",
    "                   \n",
    "            # If it is the end of the second ROI:\n",
    "            elif n_rois == 2:\n",
    "                # If at least one peak has been found:               \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Measures instantantaneous HR of found peaks with respect to the previous peak: \n",
    "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
    "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)      \n",
    "                    #print('Second ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) + \n",
    "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))        \n",
    "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
    "                    \n",
    "                    # If at least one peak is between HR limits:    \n",
    "                    if len(pos_pks) != 0:\n",
    "                        # Determines the location of the maximum peak:\n",
    "                        max_pk = np.max(sig[pos_pks])\n",
    "                        ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
    "                        #print('Second ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                        # The maximum peak is added to the list:\n",
    "                        locs = np.append(locs, pos_pks[ind])\n",
    "                        #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1\n",
    "            \n",
    "            # If it is the end of the any further ROI:\n",
    "            else:\n",
    "                # If at least one peak has been found: \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Measures instantantaneous HR of found peaks with respect to the previous peak: \n",
    "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
    "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr) \n",
    "                    #print('Third ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) + \n",
    "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))     \n",
    "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
    "                    \n",
    "                    # If at least one peak is between HR limits:    \n",
    "                    if len(pos_pks) != 0:\n",
    "                        # Calculates SDNN with the possible peaks on the ROI:\n",
    "                        sdnn = np.zeros(len(pos_pks))\n",
    "                        for j in range(len(pos_pks)):\n",
    "                            sdnn[j] = np.std(np.append(locs/fs, pos_pks[j]/fs))\n",
    "                        # Determines the new peak as that one with the lowest SDNN:\n",
    "                        min_pk = np.min(sdnn)\n",
    "                        ind, = np.where(min_pk == np.min(sdnn))\n",
    "                        #print('Third ROI: (1) Min SDNN Peak: ' + str(min_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                        locs = np.append(locs, pos_pks[ind])\n",
    "                        #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1 \n",
    "                    \n",
    "            # Resets possible peaks for next ROI:            \n",
    "            pos_pks = np.empty(0)\n",
    "                           \n",
    "        i = i + 1;\n",
    "    \n",
    "    locs = locs - len_ma\n",
    "    \n",
    "    # Correction of peaks\n",
    "    c_locs = np.empty(0)\n",
    "    n_int = np.floor(len(x)/(w*fs))\n",
    "    for i in range(int(n_int)):\n",
    "        ind1, = np.where(locs >= i*w*fs)\n",
    "        #print('Locs >= ' + str((i)*w*fs) + ': ' + str(locs[ind1]))\n",
    "        ind2, = np.where(locs < (i + 1)*w*fs)\n",
    "        #print('Locs < ' + str((i + 1)*w*fs) + ': ' + str(locs[ind2]))\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        #print('Larger and lower than locs: ' + str(locs[ind]))\n",
    "        int_locs = locs[ind]\n",
    "    \n",
    "        if i == 0:\n",
    "            aux_ibis = np.diff(int_locs)\n",
    "        else:\n",
    "            ind, = np.where(locs >= i*w*fs)\n",
    "            last = locs[ind[0] - 1]\n",
    "            aux_ibis = np.diff(np.append(last, int_locs))\n",
    "        avg_ibis = np.mean(aux_ibis)\n",
    "        th = np.append((avg_ibis - 0.3*avg_ibis), (avg_ibis + 0.3*avg_ibis))\n",
    "        ind1, = np.where(aux_ibis > th[0])\n",
    "        #print('Ind1: ' + str(ind1))\n",
    "        ind2, = np.where(aux_ibis < th[1])\n",
    "        #print('Ind2: ' + str(ind2))\n",
    "        ind = np.intersect1d(ind1, ind2)   \n",
    "        #print('Ind: ' + str(ind))     \n",
    "        \n",
    "        c_locs = np.append(c_locs, int_locs[ind]).astype(int)\n",
    "        print(c_locs)\n",
    "    \n",
    "    #fig = plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(sig)\n",
    "    #plt.scatter(locs,x[locs],marker = 'o',color = 'red')\n",
    "    #if len(c_locs) != 0:\n",
    "        #plt.scatter(c_locs,x[c_locs],marker = 'o',color = 'blue')\n",
    "    \n",
    "    if len(c_locs) != 0:\n",
    "        ibis = c_locs\n",
    "    else:\n",
    "        ibis = locs\n",
    "        \n",
    "    return ibis\n",
    "\n",
    "def d2max(x, fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using D2Max\n",
    "    Citation: Elgendi M, Norton I, Brearley M, Abbott D, Schuurmans D (2013) Systolic Peak Detection in Acceleration\n",
    "              Photoplethysmograms Measured from Emergency Responders in Tropical Conditions. PLoS ONE, vol. 8, no. 10, \n",
    "              pp. e76585. DOI: 10.1371/journal.pone.0076585\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Bandpass filter\n",
    "    if len(x) < 4098:\n",
    "        z_fill = np.zeros(4098 - len(x) + 1)\n",
    "        x_z = np.append(x, z_fill)\n",
    "    else:\n",
    "        x_z = x\n",
    "    sos = sp.butter(10, [0.5, 8], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x_z)\n",
    "    \n",
    "    # Signal clipping\n",
    "    ind, = np.where(x_f < 0)\n",
    "    x_c = x_f\n",
    "    x_c[ind] = 0\n",
    "    \n",
    "    # Signal squaring\n",
    "    x_s = x_c**2\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(x_z)\n",
    "    #plt.plot(x_f)\n",
    "    #plt.plot(x_c)\n",
    "    #plt.plot(x_s)\n",
    "    \n",
    "    # Blocks of interest\n",
    "    w1 = (111e-3)*fs\n",
    "    w1 = int(2*np.floor(w1/2) + 1)\n",
    "    b = (1/w1)*np.ones(w1)\n",
    "    ma_pk = sp.filtfilt(b,1,x_s)\n",
    "    \n",
    "    w2 = (667e-3)*fs\n",
    "    w2 = int(2*np.floor(w2/2) + 1)\n",
    "    b = (1/w2)*np.ones(w1)\n",
    "    ma_bpm = sp.filtfilt(b,1,x_s)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_s/np.max(x_s))\n",
    "    #plt.plot(ma_pk/np.max(ma_pk))\n",
    "    #plt.plot(ma_bpm/np.max(ma_bpm))\n",
    "    \n",
    "    # Thresholding\n",
    "    alpha = 0.02*np.mean(ma_pk)\n",
    "    th_1 = ma_bpm + alpha\n",
    "    th_2 = w1\n",
    "    boi = (ma_pk > th_1).astype(int)\n",
    "    \n",
    "    blocks_init, = np.where(np.diff(boi) > 0)\n",
    "    blocks_init = blocks_init + 1\n",
    "    blocks_end, = np.where(np.diff(boi) < 0)\n",
    "    blocks_end = blocks_end + 1\n",
    "    if blocks_init[0] > blocks_end[0]:\n",
    "        blocks_init = np.append(1, blocks_init)\n",
    "    if blocks_init[-1] > blocks_end[-1]:\n",
    "        blocks_end = np.append(blocks_end, len(x_s))\n",
    "    #print('Initial locs BOI: ' + str(blocks_init))\n",
    "    #print('Final locs BOI: ' + str(blocks_end))\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_s[range(len(x))]/np.max(x_s))\n",
    "    #plt.plot(boi[range(len(x))])\n",
    "    \n",
    "    # Search for peaks inside BOIs\n",
    "    len_blks = np.zeros(len(blocks_init))\n",
    "    ibis = np.zeros(len(blocks_init))\n",
    "    for i in range(len(blocks_init)):\n",
    "        ind, = np.where(blocks_end > blocks_init[i])\n",
    "        ind = ind[0]\n",
    "        len_blks[i] = blocks_end[ind] - blocks_init[i]\n",
    "        if len_blks[i] >= th_2:\n",
    "            aux = x[blocks_init[i]:blocks_end[ind]]\n",
    "            if len(aux) != 0:\n",
    "                max_val = np.max(aux)\n",
    "                max_ind, = np.where(max_val == aux)\n",
    "                ibis[i] = max_ind + blocks_init[i] - 1\n",
    "    \n",
    "    ind, = np.where(len_blks < th_2)\n",
    "    if len(ind) != 0:\n",
    "        for i in range(len(ind)):\n",
    "            boi[blocks_init[i]:blocks_end[i]] = 0    \n",
    "    ind, = np.where(ibis == 0)\n",
    "    ibis = (np.delete(ibis, ind)).astype(int)\n",
    "    \n",
    "    #plt.plot(boi[range(len(x))])\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def upslopes(x):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Upslopes\n",
    "    Citation: Arguello Prada EJ, Serna Maldonado RD (2018) A novel and low-complexity peak detection algorithm for \n",
    "              heart rate estimation from low-amplitude photoplethysmographic (PPG) signals. J Med Eng Technol, vol. 42, \n",
    "              no. 8, pp. 569-577. DOI: 10.1080/03091902.2019.1572237\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Peak detection\n",
    "    th = 6\n",
    "    pks = np.empty(0)\n",
    "    pos_pk = np.empty(0)\n",
    "    pos_pk_b = 0\n",
    "    n_pos_pk = 0\n",
    "    n_up = 0\n",
    "    \n",
    "    for i in range(1, len(x)):\n",
    "        if x[i] > x[i - 1]:\n",
    "            n_up = n_up + 1\n",
    "        else:\n",
    "            if n_up > th:\n",
    "                pos_pk = np.append(pos_pk, i)\n",
    "                pos_pk_b = 1\n",
    "                n_pos_pk = n_pos_pk + 1\n",
    "                n_up_pre = n_up\n",
    "            else:\n",
    "                pos_pk = pos_pk.astype(int)\n",
    "                #print('Possible peaks: ' + str(pos_pk) + ', number of peaks: ' + str(n_pos_pk))\n",
    "                if pos_pk_b == 1:\n",
    "                    if x[i - 1] > x[pos_pk[n_pos_pk - 1]]:\n",
    "                        pos_pk[n_pos_pk - 1] = i - 1\n",
    "                    else:\n",
    "                        pks = np.append(pks, pos_pk[n_pos_pk - 1])\n",
    "                    th = 0.6*n_up_pre\n",
    "                    pos_pk_b = 0\n",
    "            n_up = 0\n",
    "    ibis = pks.astype(int)\n",
    "    #print(ibis)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def bishop(x):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Bishop's beat detector\n",
    "    Citation: Bishop SM, Ercole A (2018) Multi-scale peak and trough detection optimised\n",
    "                for periodic and quasi-periodic neuroscience data. doi:10.1007/978-3-319-65798-1_39\n",
    "    Source: This implementation is from ppg_findpeaks in Neurokit2\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Peter H. Charlton\n",
    "    Version:       0.1 -   March, 2023\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Setup\n",
    "    signal = x\n",
    "    N = len(signal)\n",
    "    L = int(np.ceil(N / 2) - 1)\n",
    "\n",
    "    # Step 1: calculate local maxima and local minima scalograms\n",
    "\n",
    "    # - detrend: this removes the best-fit straight line\n",
    "    x = sp.detrend(signal, type=\"linear\")\n",
    "\n",
    "    # - initialise LMS matrices\n",
    "    m_max = np.full((L, N), False)\n",
    "    m_min = np.full((L, N), False)\n",
    "\n",
    "    # - populate LMS matrices\n",
    "    for k in range(1, L):  # scalogram scales\n",
    "        for i in range(k + 2, N - k + 1):\n",
    "            if x[i - 1] > x[i - k - 1] and x[i - 1] > x[i + k - 1]:\n",
    "                m_max[k - 1, i - 1] = True\n",
    "            if x[i - 1] < x[i - k - 1] and x[i - 1] < x[i + k - 1]:\n",
    "                m_min[k - 1, i - 1] = True\n",
    "\n",
    "    # Step 2: find the scale with the most local maxima (or local minima)\n",
    "    # - row-wise summation (i.e. sum each row)\n",
    "    gamma_max = np.sum(m_max, axis=1)\n",
    "    # the \"axis=1\" option makes it row-wise\n",
    "    gamma_min = np.sum(m_min, axis=1)\n",
    "    # - find scale with the most local maxima (or local minima)\n",
    "    lambda_max = np.argmax(gamma_max)\n",
    "    lambda_min = np.argmax(gamma_min)\n",
    "\n",
    "    # Step 3: Use lambda to remove all elements of m for which k>lambda\n",
    "    m_max = m_max[: (lambda_max + 1), :]\n",
    "    m_min = m_min[: (lambda_min + 1), :]\n",
    "\n",
    "    # Step 4: Find peaks (and onsets)\n",
    "    # - column-wise summation\n",
    "    m_max_sum = np.sum(m_max == False, axis=0)\n",
    "    m_min_sum = np.sum(m_min == False, axis=0)\n",
    "    peaks = np.asarray(np.where(m_max_sum == 0)).astype(int)\n",
    "    onsets = np.asarray(np.where(m_min_sum == 0)).astype(int)\n",
    "    \n",
    "    return peaks\n",
    "\n",
    "def qppg(x,fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using qppg\n",
    "    Citation: Vest AN et al. An open source benchmarked toolbox for cardiovascular waveform\n",
    "              and interval analysis. Physiological Measurement. 2018;39(10).\n",
    "              https://doi.org/10.1088/1361-6579/aae021\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Peter H. Charlton\n",
    "    Version:       0.1 -   March, 2023 (doesn't seem to be working yet)\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Setup\n",
    "    from scipy.ndimage import uniform_filter1d\n",
    "    show = 0\n",
    "    signal = x\n",
    "    \n",
    "    if show:\n",
    "        __, ax0 = plt.subplots(nrows=1, ncols=1, sharex=True)\n",
    "        ax0.plot(signal, label=\"signal\")\n",
    "\n",
    "    # Specify constants (where periods are specified in seconds)\n",
    "    r_period = 0.34 # Refractory period (aka eye-closing period) of\n",
    "    l_period = 8 # Learning period\n",
    "    s_period = 0.17 # slope period\n",
    "    maxrr_period = 2.5 # max inter-beat interval \n",
    "    re_scale_period = 5*60 # duration of windows over which to perform re-scaling\n",
    "    \n",
    "    # Re-scale input signal to occupy a range of +/- 2000\n",
    "    # - find min and max for each re-scale period\n",
    "    win_durn_samps = int(np.floor(re_scale_period*fs))\n",
    "    win_starts = range(0, len(signal), win_durn_samps)\n",
    "    mins = np.full((len(win_starts),1),0,dtype=float)\n",
    "    maxs = np.full((len(win_starts),1),0,dtype=float)\n",
    "    for win_no in range(0, len(win_starts)):\n",
    "        last_el = min(len(signal), win_starts[win_no]+win_durn_samps-1)\n",
    "        win_els = range(win_starts[win_no], min([len(signal), win_starts[win_no]+win_durn_samps-1]))\n",
    "        mins[win_no] = min(signal[win_starts[win_no] : last_el])\n",
    "        maxs[win_no] = max(signal[win_starts[win_no] : last_el])\n",
    "    # - calculate average min and max over whole signal\n",
    "    mins = np.median(mins)\n",
    "    maxs = np.median(maxs)\n",
    "    # - re-scale\n",
    "    signal = 4000*(signal-mins)/(maxs-mins) - 2000\n",
    "    \n",
    "    # Calculate sum of slopes function (SSF)\n",
    "    # - calculate no of samples in slope period\n",
    "    s_period_samps = np.floor(s_period*fs)\n",
    "    # - calculate slopes\n",
    "    deriv = np.diff(signal)\n",
    "    # - rectify\n",
    "    deriv[deriv<0] = 0\n",
    "    # - calculate sum of slopes function\n",
    "    ssf = uniform_filter1d(deriv, size=int(s_period_samps)) # this is a moving average\n",
    "\n",
    "    # Learning\n",
    "    # - calculate mean SSF during learning period\n",
    "    l_period_els = range(0, int(np.floor(l_period*fs)))\n",
    "    # - check there is sufficient input signal\n",
    "    if l_period_els[-1]>len(signal):\n",
    "        print('Input signal needs to be at least 8 seconds long')\n",
    "    mean_ssf = np.mean(ssf[l_period_els])\n",
    "    \n",
    "    # - set initial values of thresholds\n",
    "    th_adapt = 3*mean_ssf # adaptive threshold\n",
    "    th_ssf = 2*mean_ssf # threshold for identifying beats in SSF\n",
    "    \n",
    "    # Identify peaks\n",
    "    # - constants\n",
    "    maxrr_period_samps = int(round(maxrr_period*fs))\n",
    "    r_period_samps = int(round(r_period*fs))\n",
    "    half_r_period_samps = int(np.ceil(0.5*r_period_samps))\n",
    "    # - initialise variables\n",
    "    samps_since_peak = 0\n",
    "    # - cycle through each sample\n",
    "    onsets = [0]\n",
    "    el = -1\n",
    "    while el <= len(signal)-r_period_samps:\n",
    "        \n",
    "        el = el + 1\n",
    "        samps_since_peak = samps_since_peak+1\n",
    "\n",
    "        if el > l_period_els[-1] and ssf[el] < th_ssf:\n",
    "            # - if not in the learning period and not above SSF threshold\n",
    "            if samps_since_peak > maxrr_period_samps:\n",
    "                th_adapt = th_adapt-1;\n",
    "                th_ssf = th_adapt/3;\n",
    "        elif ssf[el] > th_ssf: # above SSF threshold\n",
    "            # - search for the max SSF within the eye-closing period after the current index\n",
    "            search_els = range(el, 1+min([len(ssf), el+r_period_samps-1]))\n",
    "            rel_max_el = np.where(ssf[search_els]==max(ssf[search_els]))[0][0]\n",
    "            # - if this maximum is at the current point then ignore (and continue) because it is on the downslope\n",
    "            \n",
    "            if rel_max_el == 1:\n",
    "                continue\n",
    "            max_el = rel_max_el + el - 1\n",
    "            # - search for the location of the minimum SSF value in the time period (of duration half the eye-closing period) preceeding this maximum.\n",
    "            first_el = max(0, el-half_r_period_samps)\n",
    "            search_els = range(first_el,el+1)\n",
    "            rel_min_el = np.where(ssf[search_els]==min(ssf[search_els]))[0][-1]\n",
    "            min_el = search_els[0]-1 + rel_min_el\n",
    "            \n",
    "            # - if the max SSF is more than 10 more than the min, then:\n",
    "            if ssf[max_el] > (10 + ssf[min_el]):\n",
    "                # - locate the pulse onset as the minimum within the refractory period before this point\n",
    "                first_el = max(0, max_el-half_r_period_samps)\n",
    "                search_els = range(first_el, max_el+1)\n",
    "                min_val = min(signal[search_els])\n",
    "                onsets.append(search_els[0]-1+ np.where(signal[search_els]==min_val)[0][-1])\n",
    "            \n",
    "                # Adjust the thresholds:\n",
    "                # - (i) add on to the adaptive threshold one tenth of the difference between the max SSF value and the current adaptive threshold;\n",
    "                th_adapt = th_adapt + 0.1*(ssf[max_el]-th_adapt)\n",
    "                # - (ii) set th_ssf to one third of the adaptive threshold.\n",
    "                th_ssf = (1/3)*th_adapt\n",
    "                \n",
    "                # skip samples in the refractory period, i.e.\n",
    "                el = max_el+r_period_samps-1\n",
    "                samps_since_peak = r_period_samps\n",
    "    \n",
    "    onsets.pop(0) # remove the first element which was used to initiate the variable\n",
    "    \n",
    "    if show:\n",
    "        ax0.scatter(onsets, signal[onsets], c=\"r\")\n",
    "\n",
    "    onsets = np.asarray(onsets).astype(int)\n",
    "    \n",
    "    return onsets\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def delineator(x, fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Delineator\n",
    "    Citation: Li BN, Dong MC, Vai MI (2010) On an automatic delineator for arterial blood pressure waveforms. Biomed\n",
    "    Signal Process Control, vol. 5, no. 1, pp. 76-81. DOI: 10.1016/j.bspc.2009.06.002 \n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "       \n",
    "    # Lowpass filter\n",
    "    od = 3\n",
    "    sos = sp.butter(od, 25, btype = 'low', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x)\n",
    "    x_m = 1000*x_f\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(x_f)\n",
    "    #plt.plot(x_m)\n",
    "    \n",
    "    # Moving average\n",
    "    n = 5\n",
    "    b = (1/n)*np.ones(n)\n",
    "    x_ma = sp.filtfilt(b,1,x_m)\n",
    "        \n",
    "    # Compute differentials\n",
    "    dif = np.diff(x_ma)\n",
    "    dif = 100*np.append(dif[0], dif)\n",
    "    dif_ma = sp.filtfilt(b,1,dif)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_ma)\n",
    "    #plt.plot(dif_ma)\n",
    "               \n",
    "    # Average thresholds in original signal\n",
    "    x_len = len(x)\n",
    "    if x_len > 12*fs:\n",
    "        n = 10\n",
    "    elif x_len > 7*fs:\n",
    "        n = 5\n",
    "    elif x_len > 4*fs:\n",
    "        n = 2\n",
    "    else:\n",
    "        n = 1\n",
    "    #print(n)\n",
    "    \n",
    "    max_min = np.empty(0)\n",
    "    if n > 1:\n",
    "        #plt.figure()\n",
    "        #plt.plot(x_ma)\n",
    "        n_int = np.floor(x_len/(n + 2))\n",
    "        #print('Length of intervals: ' + str(n_int))\n",
    "        for j in range(n):\n",
    "            # Searches for max and min in 1 s intervals\n",
    "            amp_min, ind_min, amp_max, ind_max = seek_local(x_ma, int(j*n_int), int(j*n_int + fs))  \n",
    "            #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
    "            #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
    "            max_min = np.append(max_min, (amp_max - amp_min))\n",
    "        max_min_avg = np.mean(max_min)\n",
    "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
    "    else:\n",
    "        amp_min, ind_min , amp_max, ind_max = seek_local(x_ma, int(close_win), int(x_len))\n",
    "        #plt.figure()\n",
    "        #plt.plot(x_ma) \n",
    "        #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
    "        #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
    "        max_min_avg = amp_max - amp_min\n",
    "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
    "        \n",
    "    max_min_lt = 0.4*max_min_avg\n",
    "    \n",
    "    # Seek pulse beats by min-max method\n",
    "    step_win = 2*fs       # Window length to look for peaks/onsets\n",
    "    close_win = np.floor(0.1*fs)\n",
    "                          # Value of what is considered too close\n",
    "    \n",
    "    pks = np.empty(0)     # Location of peaks\n",
    "    ons = np.empty(0)     # Location of onsets\n",
    "    dic = np.empty(0)     # Location of dicrotic notches\n",
    "        \n",
    "    pk_index = -1          # Number of peaks found\n",
    "    on_index = -1          # Number of onsets found\n",
    "    dn_index = -1          # Number of dicrotic notches found\n",
    "    \n",
    "    i = int(close_win)    # Initializes counter\n",
    "    while i < x_len:      # Iterates through the signal\n",
    "        #print('i: ' + str(i))\n",
    "        amp_min = x_ma[i] # Gets the initial value for the minimum amplitude\n",
    "        amp_max = x_ma[i] # Gets the initial value for the maximum amplitude\n",
    "        \n",
    "        ind = i           # Initializes the temporal location of the index\n",
    "        aux_pks = i       # Initializes the temporal location of the peak \n",
    "        aux_ons = i       # Initializes the temporal location of the onset\n",
    "        \n",
    "        # Iterates while ind is lower than the length of the signal\n",
    "        while ind < x_len - 1:\n",
    "            #print('Ind: ' + str(ind))\n",
    "            # Verifies if no peak has been found in 2 seconds\n",
    "            if (ind - i) > step_win:\n",
    "                #print('Peak not found in 2 s')\n",
    "                ind = i   # Refreshes the temporal location of the index\n",
    "                max_min_avg = 0.6*max_min_avg  # Refreshes the threshold for the amplitude\n",
    "                # Verifies if the threshold is lower than the lower limit\n",
    "                if max_min_avg <= max_min_lt:\n",
    "                    max_min_avg = 2.5*max_min_lt # Refreshes the threshold\n",
    "                break\n",
    "            \n",
    "            # Verifies if the location is a candidate peak \n",
    "            if (dif_ma[ind - 1]*dif_ma[ind + 1]) <= 0:\n",
    "                #print('There is a candidate peak')\n",
    "                # Determines initial and end points of a window to search for local peaks and onsets\n",
    "                if (ind + 5) < x_len:\n",
    "                    i_stop = ind + 5\n",
    "                else:\n",
    "                    i_stop = x_len - 1\n",
    "                if (ind - 5) >= 0:\n",
    "                    i_start = ind - 5\n",
    "                else:\n",
    "                    i_start = 0\n",
    "                \n",
    "                # Checks for artifacts of saturated or signal loss\n",
    "                if (i_stop - ind) >= 5:\n",
    "                    for j in range(ind, i_stop):\n",
    "                        if dif_ma[j] != 0:\n",
    "                            break\n",
    "                    if j == i_stop:\n",
    "                        #print('Artifact')\n",
    "                        break\n",
    "                        \n",
    "                # Candidate onset\n",
    "                #print('Looking for candidate onsets...')\n",
    "                #plt.figure()\n",
    "                #plt.plot(x_ma)\n",
    "                if dif_ma[i_start] < 0:\n",
    "                    if dif_ma[i_stop] > 0:\n",
    "                        aux_min, ind_min, _, _ = seek_local(x_ma, int(i_start), int(i_stop))\n",
    "                        #plt.scatter(ind_min, aux_min, marker = 'o', color = 'red')\n",
    "                        if np.abs(ind_min - ind) <= 2:\n",
    "                            amp_min = aux_min\n",
    "                            aux_ons = ind_min\n",
    "                #print('Candidate onset: ' + str([ind_min, amp_min]))\n",
    "                # Candidate peak\n",
    "                #print('Looking for candidate peaks...')\n",
    "                if dif_ma[i_start] > 0:\n",
    "                    if dif_ma[i_stop] < 0:\n",
    "                        _, _, aux_max, ind_max = seek_local(x_ma, int(i_start), int(i_stop))\n",
    "                        #plt.scatter(ind_max, aux_max, marker = 'o', color = 'green')\n",
    "                        if np.abs(ind_max - ind) <= 2:\n",
    "                            amp_max = aux_max\n",
    "                            aux_pks = ind_max\n",
    "                #print('Candidate peak: ' + str([ind_max, amp_max]))\n",
    "                # Verifies if the amplitude of the pulse is larger than 0.4 times the mean value:\n",
    "                #print('Pulse amplitude: ' + str(amp_max - amp_min) + ', thresholds: ' + \n",
    "                #      str([0.4*max_min_avg, 2*max_min_avg]))\n",
    "                if (amp_max - amp_min) > 0.4*max_min_avg:\n",
    "                    #print('Expected amplitude of pulse')\n",
    "                    # Verifies if the amplitude of the pulse is lower than 2 times the mean value:\n",
    "                    if (amp_max - amp_min) < 2*max_min_avg:\n",
    "                        #print('Expected duration of pulse')\n",
    "                        if aux_pks > aux_ons:\n",
    "                            #print('Refining onsets...')\n",
    "                            # Refine onsets:\n",
    "                            aux_min = x_ma[aux_ons]\n",
    "                            temp_ons = aux_ons\n",
    "                            for j in range(aux_pks, aux_ons + 1, -1):\n",
    "                                if x_ma[j] < aux_min:\n",
    "                                    aux_min = x_ma[j]\n",
    "                                    temp_ons = j\n",
    "                            amp_min = aux_min\n",
    "                            aux_ons = temp_ons\n",
    "                            \n",
    "                            # If there is at least one peak found before:\n",
    "                            #print('Number of previous peaks: ' + str(pk_index + 1))\n",
    "                            if pk_index >= 0:\n",
    "                                #print('There were previous peaks')\n",
    "                                #print('Duration of ons to peak interval: ' + str(aux_ons - pks[pk_index]) + \n",
    "                                #     ', threshold: ' + str([3*close_win, step_win]))\n",
    "                                # If the duration of the pulse is too short:\n",
    "                                if (aux_ons - pks[pk_index]) < 3*close_win:\n",
    "                                    #print('Too short interbeat interval')\n",
    "                                    ind = i\n",
    "                                    max_min_avg = 2.5*max_min_lt\n",
    "                                    break\n",
    "                                # If the time difference between consecutive peaks is longer:    \n",
    "                                if (aux_pks - pks[pk_index]) > step_win:\n",
    "                                    #print('Too long interbeat interval')\n",
    "                                    pk_index = pk_index - 1\n",
    "                                    on_index = on_index - 1\n",
    "                                    #if dn_index > 0:\n",
    "                                    #    dn_index = dn_index - 1\n",
    "                                # If there are still peaks, add the new peak:\n",
    "                                if pk_index >= 0:\n",
    "                                    #print('There are still previous peaks')\n",
    "                                    pk_index = pk_index + 1\n",
    "                                    on_index = on_index + 1\n",
    "                                    pks = np.append(pks, aux_pks)\n",
    "                                    ons = np.append(ons, aux_ons)\n",
    "                                    #print('Peaks: ' + str(pks))\n",
    "                                    #print('Onsets: ' + str(ons))   \n",
    "                                    \n",
    "                                    tf = ons[pk_index] - ons[pk_index - 1]\n",
    "                                    \n",
    "                                    to = np.floor(fs/20)\n",
    "                                    tff = np.floor(0.1*tf)\n",
    "                                    if tff < to:\n",
    "                                        to = tff\n",
    "                                    to = pks[pk_index - 1] + to\n",
    "                                    \n",
    "                                    te = np.floor(fs/20)\n",
    "                                    tff = np.floor(0.5*tf)\n",
    "                                    if tff < te:\n",
    "                                        te = tff\n",
    "                                    te = pks[pk_index - 1] + te\n",
    "                                    \n",
    "                                    #tff = seek_dicrotic(dif_ma[to:te])\n",
    "                                    #if tff == 0:\n",
    "                                    #    tff = te - pks[pk_index - 1]\n",
    "                                    #    tff = np.floor(tff/3)\n",
    "                                    #dn_index = dn_index + 1\n",
    "                                    #dic[dn_index] = to + tff\n",
    "                                    \n",
    "                                    ind = ind + close_win\n",
    "                                    break\n",
    "                            # If it is the first peak:\n",
    "                            if pk_index < 0:\n",
    "                                #print('There were no previous peaks')\n",
    "                                pk_index = pk_index + 1\n",
    "                                on_index = on_index + 1\n",
    "                                pks = np.append(pks, aux_pks)\n",
    "                                ons = np.append(ons, aux_ons)\n",
    "                                #print('Peaks: ' + str(pks))\n",
    "                                #print('Onsets: ' + str(ons))                                \n",
    "                                ind = ind + close_win\n",
    "                                break\n",
    "                                \n",
    "            ind = ind + 1\n",
    "        i = int(ind + 1)\n",
    "    \n",
    "    if len(pks) == 0:\n",
    "        return -1\n",
    "    else:\n",
    "        x_len = len(pks)\n",
    "        temp_p = np.empty(0)\n",
    "        for i in range(x_len):\n",
    "            temp_p = np.append(temp_p, pks[i] - od)\n",
    "        ttk = temp_p[0]\n",
    "        if ttk < 0:\n",
    "            temp_p[0] = 0\n",
    "        pks = temp_p\n",
    "        \n",
    "        x_len = len(ons)\n",
    "        temp_o = np.empty(0)\n",
    "        for i in range(x_len):\n",
    "            temp_o = np.append(temp_o, ons[i] - od)\n",
    "        ttk = temp_o[0]\n",
    "        if ttk < 0:\n",
    "            temp_o[0] = 0\n",
    "        ons = temp_o\n",
    "               \n",
    "    pks = pks + 5\n",
    "    ibis = pks.astype(int)\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def seek_dicrotic(x):\n",
    "    \n",
    "    izc_min = 0\n",
    "    izc_max = 0\n",
    "    i_temp = 3\n",
    "    temp_len = len(x) - 3\n",
    "    \n",
    "    dic_notch = 0\n",
    "    \n",
    "    n = 5\n",
    "    b = (1/n)*np.ones(n)\n",
    "    x = sp.filtfilt(b,1,x)\n",
    "    \n",
    "    tzc_min = np.empty(0)\n",
    "    while i_temp <= temp_len:\n",
    "        if (x[i_temp]*x[i_temp + 1]) <= 0:\n",
    "            if x[i_temp - 2] < 0:\n",
    "                if x[i_temp + 2] >= 0:\n",
    "                    izc_min = izc_min + 1\n",
    "                    tzc_min = np.append(tzc_min, i_temp)\n",
    "        i_temp = i_temp + 1\n",
    "    \n",
    "    if izc_min == 0:\n",
    "        i_temp = 3\n",
    "        temp_min = x[i_temp]\n",
    "        i_temp_min = i_temp\n",
    "        while i_temp < temp_len:\n",
    "            if x[i_temp + 1] <= x[i_temp - 1]:\n",
    "                dic_notch = i_temp\n",
    "                return dic_notch\n",
    "            i_temp = i_temp + 1\n",
    "    elif izc_min == 1:\n",
    "        dic_notch = tzc_min[izc_min]\n",
    "        return dic_notch\n",
    "    else:\n",
    "        i_temp = tzc_min[0]\n",
    "        temp_max = x[i_temp]\n",
    "        i_temp_max = i_temp\n",
    "        while i_temp < temp_len:\n",
    "            if x[i_temp] > temp_max:\n",
    "                temp_max = x[i_temp]\n",
    "                i_temp_max = i_temp\n",
    "            i_temp = i_temp + 1\n",
    "        for i_temp in range(izc_min, 1, -1):\n",
    "            if tzc_min[i_temp] < i_temp_max:\n",
    "                dic_notch = tzc_min[i_temp]\n",
    "                return dic_notch\n",
    "    \n",
    "    return dic_notch\n",
    "\n",
    "def seek_local(x, start, end):\n",
    "    val_min = x[start]\n",
    "    val_max = x[start]\n",
    "    \n",
    "    ind_min = start\n",
    "    ind_max = start\n",
    "    \n",
    "    for j in range(start, end):\n",
    "        if x[j] > val_max:\n",
    "            val_max = x[j]\n",
    "            ind_max = j\n",
    "        elif x[j] < val_min:\n",
    "            val_min = x[j]\n",
    "            ind_min = j\n",
    "    \n",
    "    return val_min, ind_min, val_max, ind_max\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bded67b5",
   "metadata": {
    "id": "bded67b5"
   },
   "source": [
    "Now return to [this step](#detect-beats-in-the-PPG-signal)"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "name": "beat-detection.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
